【发布时间】:2013-09-15 09:38:54
【问题描述】:
我正在尝试通过比较包含 unix 日期字符串(“start-unix-date”)的字段与 当前 unix 时间(简化在本例中为“15”)。我只想保留 unix 日期在未来(>= 比现在)的项目。
这是我的代码的简化版本 - 基于this filtering method:
$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 是字符串还是整数存在问题。我尝试了许多将其强制为整数的方法,但似乎没有任何效果:(
【问题讨论】: