Вот мой вывод массива
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/>"; }
Мой выложенный показ не пуст. Какой правильный способ проверки пуст?
Он работает как ожидалось, третий пуст
Может быть, попытайтесь урезать его ценность, на всякий случай, что третье значение будет просто пространством.
foreach ($array as $key => $value) { $value = trim($value); if (empty($value)) echo "$key empty <br/>"; else echo "$key not empty <br/>"; }
Другое решение:
$array = array('one', 'two', ''); if(count(array_filter($array)) == count($array)) { echo 'OK'; } else { echo 'ERROR'; }
Вы можете использовать array_diff()
и array_diff_key()
:
$array = array('one', 'two', ''); $emptyKeys = array_diff_key(array_diff($array,array()),$array);
array_diff()
извлекает все элементы, которые не совпадают (поэтому, оставляя пробелы), array_diff_key
возвращает отличия от исходного массива.
Вы можете проверить пустой массив, используя следующее:
if ( !empty(array_filter($array))) { echo 'OK'; } else { echo 'EMPTY ARRAY'; }
Вот простое решение для проверки массива для пустых значений ключа и возврата ключа.
$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!'; }
im, использующий в моем проекте, как это для проверки этого массива
im размещение данных формы, подобных этому array('username' => 'john','surname' => 'sins');
public function checkArrayKeyExist($arr) { foreach ($arr as $key => $value) { if (!strlen($arr[$key])) { return false; } } return true; }
Попробуй это:
<?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; } ?>