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

У меня есть форма, отправляющая многомерный массив в мой скрипт PHP, мне нужно знать, все ли значения в массиве пусты или нет.

Вот мой массив:

$array[] = array('a'=>'',
                 'b'=>array('x'=>''),
                 'c'=>array('y'=>array('1'=>'')),
                 'd'=>'');

Я пытался использовать array_reduce(), но он просто возвращает массив:

echo array_reduce($array, "em");

function em($a,$b){
    return $a.$b;
}

Есть идеи?

1 ответ

Я заметил, что это долго зависало, это пользовательская функция, которая работает довольно хорошо.

function emptyArray($array) {
  $empty = TRUE;
  if (is_array($array)) {
    foreach ($array as $value) {
      if (!emptyArray($value)) {
        $empty = FALSE;
      }
    }
  }
  elseif (!empty($array)) {
    $empty = FALSE;
  }
  return $empty;
}

если все элементы в массиве пусты, функция вернет true, но если один элемент в массиве не пуст, функция вернет false.

Использование:

if (emptyArray($ARRAYNAME)) {
  echo 'This array is empty';
}
else {
  echo 'This array is not empty';
}
Другие вопросы по тегам