2017-01-10 11 views
1

Я не могу узнать, как проверить, является ли массив пустым. Я знаю, что empty() означает 100% пустое, включая ключи. Но мой массив выглядит следующим образом, когда есть (в данном случае) не продуктов:Проверьте, нет ли массива пустым (не считая ключей)

Array 
(
    [0] => 
) 

Как я могу проверить, если массив пуст, как это? Предпочтительно только для этого точного «списка массивов», потому что на странице, у которой есть продукты, у меня также есть [0] => как первое значение, которое я отфильтровываю (но это после того, как мне нужно проверить пустой массив).

Edit:

if(empty(array_values($relatedcr))){ 
    echo 'empty'; 
}else{ 
    echo 'not empty'; 
} 

ответ

3

получить значение как массив, а затем проверить его.

empty(array_values($array)); 

Вот тестовый код:

<?php 
$array=[1]; 
unset($array[0]); 
var_dump($array); 
var_dump(empty($array)); 
var_dump(['']); 
var_dump(empty([''])); 

выход: demo here

array(0) { 
} 
bool(true) 
array(1) { 
    [0]=> 
    string(0) "" 
} 
bool(false) 
+0

Я добавил код, как в моем отредактированный пост. Но я не пуст на странице с продуктами и страницей без продуктов. Когда я печатаю массив, я все равно получаю тот же результат, что и в своем исходном сообщении. – twan

+0

@twan пустая строка имеет разницу с пустым значением. –

+1

Вы потеряли меня в тестовом коде. Спасибо, в любом случае, вы указали мне в правильном направлении, заставили его работать с array_filter. – twan

0

Таким образом:

foreach ($playerlist as $key => $value) { 
     if (empty($value)) { //checking if array value are empty 
      unset($playerlist[$key]); 
     } 
    } 
0

Вы можете сделать это с помощью rray_filter затем проверить пустой

$b = array_filter($array1); 

    if (empty($b)) 
    { 
     echo "empty"; 
    } 
    else 
    { 
     echo "not empty"; 
    } 
0
<?php 
$user= [ 
    "name"=> "", 
    "age" => "" 
]; 
$data = array_filter($user); 
echo (empty($data)) ? "empty" : "not empty"; 

выход: пустой