Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 获取数组中高于给定值的值的数目_Php_Arrays_Count - Fatal编程技术网

Php 获取数组中高于给定值的值的数目

Php 获取数组中高于给定值的值的数目,php,arrays,count,Php,Arrays,Count,所以我有一个数组,其中包含一个ID作为键,创建时间作为值, 例如,我的数组如下所示 $id_time_array = [ [21]=> 1540494319 [939]=> 1540494328 [2205]=> 1540494331 ]; 我想得到在过去3个小时内创建的ID的数量,PHP中是否有用于此的函数,或者最简单的方法是什么 一旦建立了截止时间戳 $cutoff = strtotime('3 hours ago'); 您可以将数组筛选为大于截止值的项,并计算其结果

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

$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\u filter
的第二个参数是一个

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


一旦建立了截止时间戳

$cutoff = strtotime('3 hours ago');
您可以将数组筛选为大于截止值的项,并计算其结果

$result = count(array_filter($array, function($timestamp) use ($cutoff) {
    return $timestamp > $cutoff;
}));
如果您只需要计数,则不需要对ID执行任何操作


array\u filter
的第二个参数是一个

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


@DontPanic所说的是正确的。但是,我不得不问,这些值是否来自数据库?如果是这样的话,使用查询引擎进行此筛选会快得多。@colefner我同意,它也可以更快地进行计数。@colefner一个序列化数组来自DBWell,在这种情况下,数据库可能不会有多大帮助。哦,哦,是的,那么你必须在应用层处理计数/筛选。有很多方法可以使用mysql搜索序列化数据,但它可能不会比使用PHP更有效。@DontPanic所说的是正确的。但是,我不得不问,这些值是否来自数据库?如果是这样的话,使用查询引擎进行此筛选会快得多。@colefner我同意,它也可以更快地进行计数。@colefner一个序列化数组来自DBWell,在这种情况下,数据库可能不会有多大帮助。哦,哦,是的,那么你必须在应用层处理计数/筛选。有很多方法可以使用mysql搜索序列化数据,但它可能不会比使用PHP更有效@DontPanic你能解释一下“函数($timestamp)使用($cutoff)”做什么吗?@DaBeginer我在答案中添加了一些解释。@DontPanic你能解释一下“函数($timestamp)使用($cutoff)”做什么吗?@DaBeginer我在答案中添加了一些解释。