PHP Laravel Проверьте, пуст ли массив - PullRequest
0 голосов
/ 14 сентября 2018

Я борюсь с отображением некоторого контента в зависимости от того, имеет ли массив значение или нет. Каждый раз, когда выполняется код в остальной части. Что здесь не так? Есть ли синтаксическая ошибка с этим кодом? Я использую php laravel.

foreach($now as $v)
{
        $arry[$c++]=$v->Code; 
}
if($arry==null){
     Do Something
}
else{
     Do Something else
}

Ответы [ 6 ]

0 голосов
/ 14 сентября 2018

Вы можете использовать empty() или count() или sizeof(), как показано ниже:

$a = [];
if(empty($a)) {
    echo 'empty' . PHP_EOL;
} else {
    echo '!empty' . PHP_EOL;
}
if(count($a) == 0) {
    echo 'empty' . PHP_EOL;
} else {
    echo '!empty' . PHP_EOL;
}
if(sizeof($a) == 0) {
    echo 'empty' . PHP_EOL;
} else {
    echo '!empty' . PHP_EOL;
}

echo empty($a) . PHP_EOL; // 1
echo count($a) . PHP_EOL; // 0
echo sizeof($a) . PHP_EOL; // 0

Output : 
empty
empty
empty
1
0
0
0 голосов
/ 14 сентября 2018

Всегда проверяйте массив перед итерацией в foreach и проверяйте с помощью функции count, чтобы проверить его значение

if(isset($now) && count($now)>0){
    foreach($now as $v) {
            $arry[$c++]=$v->Code; 
    }
}
if(count($arry)>0){
     Do Something
}
else{
     Do Something else
}
0 голосов
/ 14 сентября 2018

Лучше сделать if (!empty($arry)) {}

P.S. да if (!$arry) делают то же самое, но каждый человек, который не знаком с php или даже мало разбирается в программировании, должен понимать код. Что значит «не массив», но если будет «не пустой массив», то более понятно. Это очень прямо вперед.

Чистый код

0 голосов
/ 14 сентября 2018

if (sizeof ($ arry)> 0) делать что-то еще делать что-то еще

0 голосов
/ 14 сентября 2018

это не относится к фреймворку Laravel

if (count($arry) > 0) 
   Do Something
else
   Do Something else
0 голосов
/ 14 сентября 2018
if($arry) {
     echo 'The array is not empty';
}
else {
     echo 'The array is empty';
}

Подробнее: Как проверить, что массив пуст?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...