php,返回大于存储在变量中的整数的整数数组中的所有元素
呃,我的第一个想法是使用array_filter函数,看起来像这样:php,返回大于存储在变量中的整数的整数数组中的所有元素,php,arrays,Php,Arrays,呃,我的第一个想法是使用array_filter函数,看起来像这样: function gettime(){ $cityciqurechangetime = an array of integers; $iniFirstLegEndTime = an integer calculated by other methods; $CitySquareTimearray = array_filter($cityciqurechangetime,
function gettime(){
$cityciqurechangetime = an array of integers;
$iniFirstLegEndTime = an integer calculated by other methods;
$CitySquareTimearray = array_filter($cityciqurechangetime,
function($n){global $iniFirstLegEndTime ;
return $n >= ($iniFirstLegEndTime);});
return $CitySquareTimearray;
}
但它不起作用,我运行了一些测试,结果表明变量$iniFirstLegEndTime从未传递给数组_filter()函数中的回调函数,因此$CitySquaretimeray变量只是整个数组$CityCiquickRechangeTime
我曾经认为也许我不应该在array_filter()函数中声明一个函数,但是下面的一个函数在$starttimetabletime所在的位置非常有效
一组时间戳
$initStartTimearray = array_filter($starttimetabletime,
function($n)
{return $n >= time();});
我真正想要的是$CITYCIQURECCHANGETIME的“子数组”,所有元素都大于或等于$INFIRSTLEGENDTIME,请告诉我我做错了什么,或者除了使用array_filter()函数之外,是否有更好的方法来解决这个问题请教我,非常感谢。您的返回语句不正确。以下是脚本的更新版本:
function gettime(){
$cityciqurechangetime = [1,2,3,4,5];
$iniFirstLegEndTime = 2;
$CitySquareTimearray = array_filter($cityciqurechangetime, function($n) use ($iniFirstLegEndTime){
return $n >= ($iniFirstLegEndTime)?$n:null;
});
return $CitySquareTimearray;
}
var_dump(gettime());
您应该使用数组过滤器,因为它比数组上的迭代更有效。您的返回语句不正确。以下是脚本的更新版本:
function gettime(){
$cityciqurechangetime = [1,2,3,4,5];
$iniFirstLegEndTime = 2;
$CitySquareTimearray = array_filter($cityciqurechangetime, function($n) use ($iniFirstLegEndTime){
return $n >= ($iniFirstLegEndTime)?$n:null;
});
return $CitySquareTimearray;
}
var_dump(gettime());
您应该使用数组过滤器,因为它的性能比数组上的迭代要好得多。上面@null05提供的更新函数是避免使用
global
关键字的正确方法,返回语句可以在不使用三元运算符的情况下进一步简化
函数gettime(){
$CITYCIQURECCHANGETIME=[1,2,3,4,5];
$iniFirstLegEndTime=2;
$citysquaretimerary=array_filter($cityciquirchangetime,function($n)use($infirstlegendtime){
返回$n>=$iniFirstLegEndTime;
});
返回$citysquaretimerary;
}
var_dump(gettime());
array\u filter
中的回调返回一个布尔值,通知array\u filter
哪些项要包含在$citysquaretimerary
数组中。上面@null05提供的更新函数是避免使用全局
关键字的正确方法,返回语句可以进一步简化不使用三元运算符
函数gettime(){
$CITYCIQURECCHANGETIME=[1,2,3,4,5];
$iniFirstLegEndTime=2;
$citysquaretimerary=array_filter($cityciquirchangetime,function($n)use($infirstlegendtime){
返回$n>=$iniFirstLegEndTime;
});
返回$citysquaretimerary;
}
var_dump(gettime());
array\u filter
中的回调返回一个布尔值,以通知array\u filter
要在$citysquaretimerary
数组中包含哪些项。在anon函数中使用全局,但在gettime()中不使用全局。它将不起作用。您在anon函数中使用global,但在gettime()中不使用globalize。这是行不通的。