PHP如何检查数组是否没有键和值

时间:2019-02-01 13:04:47

标签: php arrays

我正在使用由某人开发的一个自定义CMS,但出现问题以检查阵列结果。

该函数通过传递userids数组来返回用户名数组。

示例代码

$all_users = "1,5,9,10,25,40"; // getting from database

$user_ids = explode(',', $all_users);
$usernames  = get_userids_to_usernames($user_ids); //this returns usernames array by passing uesrids array

如果该列中没有用户,则该函数将返回奇怪的空/空数组,如下所示。

var_dump($ usernames);

array(1) { [""]=> NULL }

print_r($ usernames);

(
    [] => 
)

现在的问题是,我想检查数组是否为空或是否有返回值,但是我尝试了所有is_nullemptycount($usernames) > 0,但这些都不起作用。

有人可以帮助我有条件地检查数组是否具有值或是否像上面的空结果一样为空。

4 个答案:

答案 0 :(得分:2)

这是一种解决方法

if (array_key_exists('', $a) && $a[''] === null) {
    unset($a['']);
}

然后检查空度

答案 1 :(得分:1)

您可以使用in_array来检查数组是否为空值,并使用array_key_exists来检查键。

in_array("", $array)
array_key_exists("", $array)

http://php.net/manual/en/function.in-array.php

http://php.net/manual/fr/function.array-key-exists.php

答案 2 :(得分:0)

遍历数组,并检查键或值是否为空或空

$newarray = [];
foreach($array as $key=>$value)
{
    if(is_null($value) || trim($value) == '' || is_null($value) || trim($key) == ''){
    continue; //skip the item
  }
        $newarray[$key] = $value;
}

答案 3 :(得分:0)

如果要使用空值,请尝试使用数组过滤器

if (empty(array_filter($arr))) {
    //Do something
}

数组过滤器会自动为您删除错误的值,并且在需要更大灵活性时可以包含回调。