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

У меня есть массив

$array = array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null); 

я хотел бы определить, имеют ли все ключи массива пустые значения, если так, то верните false. приведенный выше пример должен возвращать значение false, поскольку оно не имеет значения. но если один или несколько ключей имеют какие-либо значения, тогда он должен возвращать true, например, приведенный ниже пример является истинным.

 $array = array('key1', 'key2' => value2, 'key3', 'key4' => value4); 

Предполагая, что вы на самом деле имеете в виду массив вроде

 array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null) 

ответ просто

 if (!array_filter($array)) { // all values are empty (where "empty" means == false) } 

Ваше предположение неверно. array('key1', 'key2', 'key3', 'key4') имеет 4 значения и клавиши в диапазоне 0..3 .

array('key1', 'key2' => value2, 'key3', 'key4' => value4) имеет ключ array('key1', 'key2' => value2, 'key3', 'key4' => value4) (с ключом 0), ключ key2 , ключ key4 (с ключом 1) и ключ key4 ,

@Blagovest правильно относится к вашей неправильной постановке вопроса.

 $allEmpty = true; foreach( $array as $key => $val ) { if( isset( $array[$key] ) ) { $allEmpty = false; break; } } // Do what you will with $allEmpty 

Я думаю, что вы имеете в виду, чтобы проверить, являются ли все ключи числовыми или если хотя бы одна строка:

 $ok = false; foreach( array_keys($array) as $key ){ if(is_string($key)){ $ok=true; break; } } return $ok; 
 $flag = 0; foreach($array as $keys) { if(!isempty($keys)) { $flag++; } } if(flag > 0) { echo "Array not empty!"; } else { echo "Array empty!"; } 

Должно сработать.

 $array = array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null); 

Ответ

 $filterArray = array_filter($array); if(count($filterArray) == 0){ return false; }else{ return true; }