首页 > 解决方案 > 获取数组中高于给定值的值的数量

问题描述

所以我有一个数组,其中包含一个 ID 作为 Key 并创建 TIME 作为 Value,例如,我的数组如下所示,

$id_time_array = [
[21]=> 1540494319
[939]=> 1540494328
[2205]=> 1540494331 ];

我想获取在过去 3 小时左右创建的 ID 的数量,PHP 中是否有一个函数可以实现这一点,或者最简单的方法是什么?

标签: phparrayscount

解决方案


一旦你建立了截止时间戳

$cutoff = strtotime('3 hours ago');

您可以将数组过滤为大于截止值的项目并计算其结果。

$result = count(array_filter($array, function($timestamp) use ($cutoff) {
    return $timestamp > $cutoff;
}));

如果您只需要计数,则无需对 ID 执行任何操作。


的第二个参数array_filter是一个匿名函数

function($timestamp) use ($cutoff) {  return $timestamp > $cutoff; }

use语句将$cutoff变量引入匿名函数的范围。否则,该函数将无权访问该变量。您可以在我链接的 PHP 文档中更详细地了解它。

3v4l.org 上的示例


推荐阅读