Ответ 1
Предполагая, что вы на самом деле имеете в виду массив вроде
array('key1' => null, 'key2' => null, 'key3' => null, 'key4' => null)
ответ просто
if (!array_filter($array)) {
// all values are empty (where "empty" means == false)
}
У меня есть массив
$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)
имеет значение key1
(с ключом 0), ключ key2
, значение key3
(с ключом 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;
}
Простой
count(array_filter($array)) != count($array)
Если многомерный
count(array_filter(array_values($array))) != count(array_values($array))