我试图通过将包含 unix 日期字符串(“start-unix-date”)的字段与当前的unix 时间(在本例中简化为“15”)进行比较来过滤 php 数组。我只想保留 unix 日期在未来(>= 比现在)的项目。
这是我的代码的简化版本 - 基于此过滤方法:
$my_array = array(
array( 'start-date-unix' => '20' ),
array( 'start-date-unix' => '10')
);
$unix_now = 15;
function filter_future($var) {
return (is_array($var) && $var['start-date-unix'] >= $unix_now)
}
$filtered_array = array_filter($my_array, "filter_future");
var_dump($filtered_array);
预期结果:
$filtered_array 应该只保留“start-date-unix”值为 20 的项目。
实际结果:
该过滤器不做任何事情,每个值都被接受。$filtered_array 仍然包含这两个项目。
什么有效:
在 filter_future 中,如果我输入数字 (15) 而不是 $unix_now 变量,它会按预期工作:只保留“20”项。
所以我怀疑 $unix_now 是一个字符串还是一个整数存在问题。我尝试了许多将其强制为整数的方法,但似乎没有任何效果:(