"False"值的 php array_filter

标签 php arrays

我在 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/

相关文章:

arrays - 如何在R中创建列表矩阵?

javascript - 尝试将 Google Visualization API 中的 addRows() 与数组数组一起使用 - JavaScript/jQuery

Python 在 C 中生成的字符串

php - 如何在php中显示行的多个值?

php - 一个 PHP 脚本带有两个 PDO 查询?

php - AJAX - 将数据发送到我的 php 文件似乎不起作用

java - 在Java中将数组转换为列表

java - 如果从数组中复制最终变量,为什么 Java 需要对它进行显式强制转换?

php - 我该如何调试这个 php/MySQL 错误?

javascript - 从ajax post获取值(value)