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 ничего не даёт