php - 获取数组中高于给定值的值的数量
问题描述
所以我有一个数组,其中包含一个 ID 作为 Key 并创建 TIME 作为 Value,例如,我的数组如下所示,
$id_time_array = [
[21]=> 1540494319
[939]=> 1540494328
[2205]=> 1540494331 ];
我想获取在过去 3 小时左右创建的 ID 的数量,PHP 中是否有一个函数可以实现这一点,或者最简单的方法是什么?
解决方案
一旦你建立了截止时间戳
$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 文档中更详细地了解它。
推荐阅读
- assembly - 为什么这个用于对数组中的偶数求和的 SPIM/MIPS 程序不起作用?
- java - 如何实现循环机制,函数调用self直到某些条件不满足,或者排队函数调用
- facebook - API 共享计数 Facebook Graph 已弃用?
- keras - 《用 Python 进行深度学习的书》中莫名其妙的代码
- php - 卷曲请求超时失败
- php - 货币符号未使用 CodeIgniter 存储在 mySql 数据库中
- google-analytics - 事件数据,通过 Google 跟踪代码管理器发送,在 Google Bigquery 中不可见
- charts - 如何使用 Kendo Angular 创建垂直条形图?
- c# - Unity2D Input.touches 管理同时拖动 2 行
- ruby - How do I return false in RSpec as the expected result when checking if directory exist?