我在 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"
而不是boolean 值
array_filter($updated, function($x) { return !(is_null($x) || $x === "False"); });
编辑 2
为了可读性,我们改变了
!is_null($x) && $x !== "False"
到
!(is_null($x) || $x === "False")
根据 De Morgan's Laws这些是等效的,但第二个可能读起来更好,尤其是考虑到函数的名称。
关于 "False"值的 php array_filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37714168/