2013-09-10 2 views
0

У меня есть массив, содержащий разные элементы. Массив может иметь различное измерение в разных полях.Проверьте пустое содержимое в массиве

Я хочу написать функцию, чтобы проверить, есть ли в массиве какие-то переменные.

Пример массива выглядит следующим образом.

$array = new array(
     'a'=>'A', 
     'b' => new array('B',''), 
     'c'=> '' 
); 
+0

вы имеете в виду, если значения ключа являются пустыми? – keeg

+0

Да. Дело в том, что я не могу использовать простой цикл для проверки пустого поля, потому что нельзя контролировать размер массива. – BLAdam

ответ

2

Вот функция, которая будет проходить через все массивы:

$isEmpty = checkArray($arr); 

if ($isEmpty) { 
    echo "there are empties!"; 
} else { 
    echo "no empties!"; 
} 


function checkArray($array) { 

    foreach ($array as $key => $value) { 

     if (is_array($value)) { 
      if (checkArray($value)) return true; 
     } else { 
      if (empty($value)) return true; 
     } 
    } 

    return false; 
} 
+0

Спасибо. Рекурсия - замечательная вещь. Я думаю, что я могу даже использовать is_array, чтобы сделать функцию более читаемой. – BLAdam

+0

хорошая точка, я обновил ответ 'is_array' в соответствии с вашим предложением для других людей, которые могут его использовать – keeg

1

Как об этом:

foreach ($array as $key => $value) { 
    if (empty($value)) { 
     do_stuff(); 
    } 
} 
Смежные вопросы