gpt4 book ai didi

php - 在 PHP 中使用整数过滤数组值

转载 作者:搜寻专家 更新时间:2023-10-31 21:36:15 25 4
gpt4 key购买 nike

我正在尝试通过比较包含 unix 日期字符串(“start-unix-date”)的字段与当前 unix 时间(简化的)来过滤 php 数组在本例中为“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 是字符串还是整数存在问题。我尝试了很多方法来强制它成为一个整数,但似乎没有任何效果:(

最佳答案

$unix_now 超出了回调函数的范围:

使用带有 use 关键字的闭包将 $unix_now 值传递给回调

$unix_now = 15;
$filtered_array = array_filter(
$my_array,
function ($var) use ($unix_now) {
return (is_array($var) && $var['start-date-unix'] >= $unix_now)
}
);

关于php - 在 PHP 中使用整数过滤数组值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18739907/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com