Vptech
Добрый день
есть кодКод (Text):
<?php echo sprintargument($arg[‘arg_value’]) ?>выводит заголовок аргумента и содержимое
в некоторых аргументах нет содержимого
если делаем проверкуКод (Text):
<?php if ($arg[‘arg_value’] !=») { ?> <?php echo sprintargument($arg[‘arg_value’]) ?><?php } ?>или
Код (Text):
<?php if ($arg[‘arg_value’] [0]->value) { ?> <?php echo sprintargument($arg[‘arg_value’]) ?><?php } ?>то заголовок пустого аргумента все равно выводится
var_dump($arg[‘arg_value’]); выдает
Код (Text):
array(4) { [0]=> object(stdClass)#786 (2) { [«arg»]=> string(21) «название аргумента» [«value»]=> string(12) «блаблаблабла» } [1]=> object(stdClass)#785 (2) { [«arg»]=> string(34) «название аргумента1» [«value»]=> string(0) «» } [2]=> object(stdClass)#784 (2) { [«arg»]=> string(35) «название аргумента2» [«value»]=> string(12) «блаблаблабла» } [3]=> object(stdClass)#783 (2) { [«arg»]=> string(35) «название аргумента3» [«value»]=> string(12) «блаблаблабла» } }вот не могу понять как правильно то прописать условие что бы пустой агрумент не выводило
Artur_hopf
https://www.php.net/manual/ru/function.strlen.php
https://www.php.net/manual/ru/function.mb-strlen.php
Vptech
увы варианты
Код (Text):
if (strlen($arg[‘arg_value’]) == 0 )результат тот же
Код (Text):
if (strlen($arg[‘arg_value’]) !== 0 )убирает все
Код (Text):
if (strlen($arg[‘arg_value’]) >< 0 )так же все убирает
а так же варнинг
Warning: strlen() expects parameter 1 to be string, array given in
и замена на count результата не дает
Artur_hopf
а посмотреть что там, религия не позволяет:
Код (Text):
var_dump($arg[‘arg_value’]);
Vptech
выше есть
Код (Text):
array(4) { [0]=> object(stdClass)#786 (2) { [«arg»]=> string(21) «название аргумента» [«value»]=> string(12) «блаблаблабла» } [1]=> object(stdClass)#785 (2) { [«arg»]=> string(34) «название аргумента1» [«value»]=> string(0) «» } [2]=> object(stdClass)#784 (2) { [«arg»]=> string(35) «название аргумента2» [«value»]=> string(12) «блаблаблабла» } [3]=> object(stdClass)#783 (2) { [«arg»]=> string(35) «название аргумента3» [«value»]=> string(12) «блаблаблабла» } }
Artur_hopf
тогда через https://www.php.net/manual/ru/function.count.php
Vptech
выше опять же писал
и замена на count результата не дает
Sail
Элементом массива является объект. Вот и проверяйте его свойства, а не неизвестно что.
Например:PHP:
foreach ($arr as $objValue) { if ($objValue->value == ») continue; echo $objValue->arg . ‘: ‘ . $objValue->value . ‘<br>’; }
don.bidon
ТС не весь участок кода показал, нет вывода заголовка аргумента.
Sail
Фишка в том, что в функцию sprintargument передаётся весь массив объектов.
То есть, проверка конкретного элемента в массиве перед выполнением sprintargument ничего не даёт