Подтвердить что ты не робот

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

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

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

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

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

Ответ 1

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

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

ответ просто

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

Ответ 2

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

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

Ответ 3

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

$allEmpty = true;
foreach( $array as $key => $val ) {
    if( isset( $array[$key] ) ) {
        $allEmpty = false;
        break;
    }
}

// Do what you will with $allEmpty

Ответ 4

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

$ok = false;
foreach( array_keys($array) as $key ){
    if(is_string($key)){
        $ok=true;
        break;
    }
}

return $ok;

Ответ 5

$flag = 0;
foreach($array as $keys)
{
        if(!isempty($keys)) {
        $flag++;
        }
}

if(flag > 0)
{
    echo "Array not empty!";
}
else {
    echo "Array empty!";
}

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

Ответ 6

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

Ответ

$filterArray = array_filter($array);

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

Ответ 7

Простой

count(array_filter($array)) != count($array)

Если многомерный

count(array_filter(array_values($array))) != count(array_values($array))