Как проверить, является ли массив пустым с помощью PHP? - PullRequest
409 голосов
/ 07 февраля 2010

players будет либо пустым, либо разделенным запятыми списком (или одним значением). Какой самый простой способ проверить, пусто ли оно? Я предполагаю, что смогу сделать это, как только я получу массив $gameresult в $gamerow? В этом случае, вероятно, было бы более эффективно пропустить взрыв $playerlist, если он пуст, но ради аргумента, как бы я проверил, если массив также пуст?

$gamerow = mysql_fetch_array($gameresult);
$playerlist = explode(",", $gamerow['players']);

Ответы [ 19 ]

3 голосов
/ 07 марта 2015

Я использую этот код

$variable = array();

if( count( $variable ) == 0 )
{
    echo "Array is Empty";
}
else
{
    echo "Array is not Empty";
}

Но учтите, что если массив содержит большое количество ключей, этот код будет тратить много времени на их подсчет по сравнению с другими ответами здесь.

2 голосов
/ 20 мая 2017

Вы можете использовать array_filter(), который отлично подходит для любых ситуаций:

$ray_state = array_filter($myarray);

if (empty($ray_state)) {
    echo 'array is empty';
} else {
    echo 'array is not empty';
}
2 голосов
/ 07 февраля 2010
empty($gamerow['players'])
1 голос
/ 03 апреля 2019

На мой взгляд, самый простой способ для индексированного массива будет просто:

    if ($array) {
      //Array is not empty...  
    }

Условие 'if' в массиве оценивается как true, если массив не пустой и false, если массив пустой . Это не применимо к ассоциативным массивам.

0 голосов
/ 13 июня 2018

Кажется, это работает для всех случаев

if(!empty(sizeof($array)))
0 голосов
/ 20 марта 2018

Я решил эту проблему с помощью следующего кода.

$catArray=array();                          

$catIds=explode(',',$member['cat_id']);
if(!empty($catIds[0])){
foreach($catIds as $cat_id){
$catDetail=$this->Front_Category->get_category_detail($cat_id);
$catArray[]=$catDetail['allData']['cat_title'];
}
echo implode(',',$catArray);
}
0 голосов
/ 20 ноября 2017

Я думаю, что лучший способ определить, является ли массив пустым, это использовать count () следующим образом:

if(count($array)) {
    return 'anything true goes here';
}else {
    return 'anything false'; 
}
0 голосов
/ 02 сентября 2017

Как насчет:

DepartmentPerSchool = array();
(empty(is_array($DepartmentPerSchool))) ? $DepartmentPerSchool //or echo is not empty : array('not set'=>'Not set. Contact Admin'); //or echo is empty
0 голосов
/ 27 августа 2015

Вышеуказанные решения не сработали для меня. Скорее я использовал более надежный способ (он может иметь перевес):

$countarr = count($newArr); // Count the elements in an array.
$checkarr = "" ; //Initialize the value of variable to blank.
for($x=0;$x<$countarr;$x++)
{
  $checkarr = $newArr1[$x] ;
  if($checkarr != "" ) 
  {
       // do stuff if array is not empty.
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...