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

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

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

Array
(
    [1] => 1
    [2] => 2
    [3] =>  
)

Откуда я знаю, что [3] => пуст?

foreach ($array as $key => $value) {
    if (empty($value))
        echo "$key empty <br/>";
    else
        echo "$key not empty <br/>";
}

Мой вывод показывает, что все не пусто. Какой правильный способ проверки пуст?

4b9b3361

Ответ 1

Он работает как ожидалось, третий - пустой

http://codepad.org/yBIVBHj0

Возможно, попробуем урезать его значение, на всякий случай, если третье значение будет просто пространством.

foreach ($array as $key => $value) {
    $value = trim($value);
    if (empty($value))
        echo "$key empty <br/>";
    else
        echo "$key not empty <br/>";
}

Ответ 2

Другое решение:

$array = array('one', 'two', '');

if(count(array_filter($array)) == count($array)) {
    echo 'OK';
} else {
    echo 'ERROR';
}

http://codepad.org/zF9KkqKl

Ответ 3

Вы можете проверить пустой массив, используя следующее:

if ( !empty(array_filter($array))) {
    echo 'OK';
} else {
    echo 'EMPTY ARRAY';
}

Ответ 4

Вы можете использовать array_diff() и array_diff_key():

$array = array('one', 'two', '');
$emptyKeys = array_diff_key(array_diff($array,array()),$array);

array_diff() извлекает все элементы, которые не являются одинаковыми (поэтому оставляя пробелы), array_diff_key возвращает отличия от исходного массива.

Ответ 5

Вот простое решение для проверки массива для пустых значений ключа и возврата ключа.

$a = array('string', '', 5);

        echo array_search(null, $a);
        // Echos 1

Чтобы проверить, содержит ли массив пустое значение ключа. Попробуйте это.

        $b = array('string','string','string','string','','string');

        if (in_array(null, $b)) {
            echo 'We found a empty key value in your array!';
        }

Ответ 6

$array = array('A', 'B', ''); 

или же

$array = array('A', 'B', '  ');

Другое решение:

эта работа для меня

if(in_array(null, $myArray) || in_array('', array_map('trim',$myArray))) {
   echo 'Found a empty value in your array!';
   }

Ответ 7

Попробуйте следующее:

<?php
    $data=array(
        'title' => 'Test Name Four',
        'first_name' => '',
        'last_name' => 'M',
        'field_company' => 'ABC',
        'email' => '',
        'client_phone_number' => '',
        'address_line_1' => '',
        'address_line_2' => 'Address 3',
        'address_line_3' => '',
        'address_line_4' => '',
        'post_code' => '',
        );
    echo '<pre>';
    print_r($data);
    foreach ($data as $key => $case ) { 
        echo "$key => ".is_multiArrayEmpty($case)."<br>"; 
    }
    function is_multiArrayEmpty($multiarray) { 
        if(is_array($multiarray) and !empty($multiarray)){ 
            $tmp = array_shift($multiarray); 
                if(!is_multiArrayEmpty($multiarray) or !is_multiArrayEmpty($tmp)){ 
                    return false; 
                } 
                return true; 
        } 
        if(empty($multiarray)){ 
            return true; 
        } 
        return false; 
    } 
?>

Ответ 8

im, используя в моем проекте, как это для проверки этого массива

im размещение данных формы, подобных этому array('username' => 'john','surname' => 'sins');

public function checkArrayKeyExist($arr) {
    foreach ($arr as $key => $value) {
        if (!strlen($arr[$key])) {
            return false;
        }
    }
    return true;
}

Ответ 9

Вот как я это делаю в JavaScript (в PHP тоже есть способ это сделать): const emptyValue = array.filter(e => e === null || e === undefined || e === '');