繁体   English   中英

php array_filter为“假”值

[英]php array_filter for “False” value

我在php中使用array_filter

$new_array = array_filter($updated, "check_if_value_is_null_or_false");

function check_if_value_is_null_or_false($val) {
    return !is_null($val);       
};

我明白,我可以使用is_null过滤掉任何具有null值。

我还想为字符串"False"添加一个条件作为值。

我将如何修改以上内容?

好吧,你可以自己做回调

function is_not_null_or_false($value) {
  return !(is_null($value) || $value === false);
}

array_filter($updated, 'is_not_null_or_false');

或者您可以跳过单独的功能并执行

array_filter($updated, function($x) { return !(is_null($x) || $x === false); });

编辑

看来您要寻找的是字符串 "False"而不是布尔

array_filter($updated, function($x) { return !(is_null($x) || $x === "False"); });

编辑2

出于可读性考虑,我们更改了

!is_null($x) && $x !== "False"

!(is_null($x) || $x === "False")

根据De Morgan的定律,这些是等效的,但是第二个可能读起来更好,特别是考虑到该函数的名称。

请检查以下示例:

function check_if_value_is_null_or_false($val) {
    return !empty($val);
};

更多信息: http : //php.net/manual/en/types.comparisons.php empty()当变量为null和false时返回TRUE。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM