Как проверить, пусто ли значение массива?
Вот мой массив
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/>";
}
Мой вывод показывает, что все не пусто. Какой правильный способ проверки пуст?
Ответы
Ответ 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 === '');