这是我的数组输出
Array ( [1] => 1 [2] => 2 [3] => )
我怎么知道[3] =>是空的?
[3] =>
foreach ($array as $key => $value) { if (empty($value)) echo "$key empty <br/>"; else echo "$key not empty <br/>"; }
我的输出显示的都不是空的。什么是正确的检查方法是空的?
tsm1rwdh1#
另一个解决方案:
$array = array('one', 'two', ''); if(count(array_filter($array)) == count($array)) { echo 'OK'; } else { echo 'ERROR'; }
http://codepad.org/zF9KkqKl还有
$containsEmpty = in_array("", $arr);
应该快一点,因为它不必跟踪整个数组,也不必创建新数组。请注意,这两种解决方案都将0、false、null和空数组视为空值。如果你也认为一个值是空的,如果它只包含类似空格的字符,请看下面的答案
0
false
null
bxpogfeg2#
如预期的那样工作,第三个是空http://codepad.org/yBIVBHj0也许可以尝试修剪它值,以防第三个值只是一个空格。
foreach ($array as $key => $value) { $value = trim($value); if ($value === '') echo "$key is empty <br/>"; else echo "$key is not empty <br/>"; }
或者让它成为一种功能
function arrayHasEmptyValue { foreach ($array as $key => $value) { if (trim($value) === '') { return true; } } return false; }
mwg9r5ms3#
对于不同的任务,当你需要判断所有数组值是否为空时,你可以使用以下命令:
if (array_filter($array)) { echo 'OK'; } else { echo 'EMPTY ARRAY'; }
q9yhzks04#
如果你也认为值是空的,如果它们只包含空格,就像下面这样
$myArray = array('A', 'B', ' ');
这是解决方案
if(in_array('', array_map('trim', $myArray), true)) { echo 'Found empty value in your array!'; }
rbl8hiat5#
可以使用array_diff()和array_diff_key():
array_diff()
array_diff_key()
$array = array('one', 'two', ''); $emptyKeys = array_diff_key(array_diff($array,array()),$array);
array_diff()提取所有不相同的项(因此省略空格),array_diff_key将差异返回给原始数组。
array_diff_key
rryofs0p6#
下面是一个简单的解决方案,可以检查数组中的空键值并返回键值。
$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!'; }
kx7yvsdv7#
我在我的项目中使用这样的方法来检查这个数组im posting form data like this array('username' => 'john','surname' => 'sins');
array('username' => 'john','surname' => 'sins');
public function checkArrayKeyExist($arr) { foreach ($arr as $key => $value) { if (!strlen($arr[$key])) { return false; } } return true; }
dvtswwa38#
试试这个:
<?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条答案
按热度按时间tsm1rwdh1#
另一个解决方案:
http://codepad.org/zF9KkqKl
还有
应该快一点,因为它不必跟踪整个数组,也不必创建新数组。
请注意,这两种解决方案都将
0
、false
、null
和空数组视为空值。如果你也认为一个值是空的,如果它只包含类似空格的字符,请看下面的答案
bxpogfeg2#
如预期的那样工作,第三个是空
http://codepad.org/yBIVBHj0
也许可以尝试修剪它值,以防第三个值只是一个空格。
或者让它成为一种功能
mwg9r5ms3#
对于不同的任务,当你需要判断所有数组值是否为空时,你可以使用以下命令:
q9yhzks04#
如果你也认为值是空的,如果它们只包含空格,就像下面这样
这是解决方案
rbl8hiat5#
可以使用
array_diff()
和array_diff_key()
:array_diff()
提取所有不相同的项(因此省略空格),array_diff_key
将差异返回给原始数组。rryofs0p6#
下面是一个简单的解决方案,可以检查数组中的空键值并返回键值。
检查数组是否包含空键值。试试这个
kx7yvsdv7#
我在我的项目中使用这样的方法来检查这个数组
im posting form data like this
array('username' => 'john','surname' => 'sins');
dvtswwa38#
试试这个: