获取大于给定值的数组中的值数

时间:2018-10-25 20:05:39

标签: php arrays count

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

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

我想获取最近3个小时左右创建的ID的数量,PHP中是否有为此功能的函数,或者最简单的计数方法是什么?

1 个答案:

答案 0 :(得分:2)

一旦确定了截止时间戳记

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

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

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

如果只需要计数,则不需要使用ID进行任何操作。


array_filter的第二个参数是anonymous function

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

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

example at 3v4l.org