Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.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 - Fatal编程技术网

php,返回大于存储在变量中的整数的整数数组中的所有元素

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,

呃,我的第一个想法是使用array_filter函数,看起来像这样:

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。这是行不通的。