Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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,我有一个年的数组(),按从低到高的顺序排列,它们不是顺序排列的,所以1100年、1295年、17331734年、1980年等等。键从0开始,直到年数。所以[0]=>1100,[1]=>1295。。[5] => 1980. 我试图做的是从中间拉出一个范围,因此用户输入起始年=1200,结束年=1900。任何人都可以帮助我从原始数组中创建一个新数组,其值介于开始年份和结束年份之间。谢谢你的帮助。我使用的是PHP版本5.6+,记不起确切的版本了 我认为使用自定义回调是获得时间跨度的最短方法: $arr

我有一个年的数组(),按从低到高的顺序排列,它们不是顺序排列的,所以1100年、1295年、17331734年、1980年等等。键从0开始,直到年数。所以[0]=>1100,[1]=>1295。。[5] => 1980. 我试图做的是从中间拉出一个范围,因此用户输入起始年=1200,结束年=1900。任何人都可以帮助我从原始数组中创建一个新数组,其值介于开始年份和结束年份之间。谢谢你的帮助。我使用的是PHP版本5.6+,记不起确切的版本了

我认为使用自定义回调是获得时间跨度的最短方法:

$array = [1100, 1295, 1733, 1734, 1980];
$start = 1200;
$end = 1733;
$result = array_filter($array, function ($value) use ($start, $end) 
  {return $start <= $value && $value <= $end;});
var_dump($result);
$array=[11001295173317341980];
$start=1200;
$end=1733;
$result=array\u filter($array,function($value)use($start,$end)

{return$start查看
array\u search()
函数以识别开始键和结束键,然后在
array\u slice()
中提取范围(如果用户从数组中输入精确的值);甚至可以查看
array\u filter())
要提取开始日期和结束日期之间的值,数组中的值是每年,还是只有几年?rtfm只有一部分,而不是连续的。Mark Baker;好的,我知道你要做什么,比如搜索字符串获取长度,然后对其执行字符串长度……嗯,这不是Mark说的,但这也是一种可能性。Implode、regex/strpos、explodearray_filter()将我带到了这个看起来很有希望的stackoverflow问题。不想浪费任何人的时间。是的,我正在我的服务器上查看它,干杯;)建立历史崩塌事件的时间线……让黑暗来吧!