PHP:如何从数组中获取范围?

PHP:如何从数组中获取范围?,php,arrays,Php,Arrays,如果我有一个数组,比如 $numarray = array("abc", "def", "ghi", "jkl", "mno"); 如何在起点和终点之间选择值。如果起点为“def”,终点为“jkl”,则应返回“def”、“ghi”和“jkl”。起始字符串和结束字符串是动态的,因此它应该匹配,然后返回值的范围。这应该适用于您: 只需从阵列中获取一个阵列\u切片() <?php $numarray = array("abc", "def", "ghi", "jkl", "mno")

如果我有一个数组,比如

$numarray = array("abc", "def", "ghi", "jkl", "mno");

如何在起点和终点之间选择值。如果起点为“def”,终点为“jkl”,则应返回“def”、“ghi”和“jkl”。起始字符串和结束字符串是动态的,因此它应该匹配,然后返回值的范围。

这应该适用于您:

只需从阵列中获取一个
阵列\u切片()

<?php

    $numarray = array("abc", "def", "ghi", "jkl", "mno");
    $start = "def";
    $end = "jkl";   
    $startPosition = array_search($start, $numarray);
    $endPosition = array_search($end, $numarray) - $startPosition + 1;

    print_r(array_slice($numarray, $startPosition, $endPosition));

?>

这应该适合您:

只需从阵列中获取一个
阵列\u切片()

<?php

    $numarray = array("abc", "def", "ghi", "jkl", "mno");
    $start = "def";
    $end = "jkl";   
    $startPosition = array_search($start, $numarray);
    $endPosition = array_search($end, $numarray) - $startPosition + 1;

    print_r(array_slice($numarray, $startPosition, $endPosition));

?>

这么多函数调用的目的是什么。使不完全通过数组

$numarray = array("abc", "def", "ghi", "jkl", "mno");
$start = "def";
$end = "jkl";
$out = false;

$new = array ();

foreach($numarray as $item) {
  if ($item == $start) $out = true;
  if ($out) $new[] = $item;
  if ($item == $end) break;
}

print_r($new);

这么多函数调用的目的是什么。使不完全通过数组

$numarray = array("abc", "def", "ghi", "jkl", "mno");
$start = "def";
$end = "jkl";
$out = false;

$new = array ();

foreach($numarray as $item) {
  if ($item == $start) $out = true;
  if ($out) $new[] = $item;
  if ($item == $end) break;
}

print_r($new);

你试过什么吗?@Rizier123我只是不知道从哪里开始。我记得我知道如何用javascript实现这一点。我不知道substr是否与此相关,但我所知道的是javascript中有一些函数可以做到这一点。你说的范围是什么意思?你是指数组某个部分的值,还是介于下限和上限之间的值(例如
数组(1,3,4,8,2)
,所有值都在3和5之间)?@DaanWilmer有一个html表单,它有两个输入字段。用户可以在第一个字段中键入任何起始值,在另一个字段中键入最后一个值,脚本将返回这两个值之间的所有值,包括起始值和结束值。您尝试了什么吗?@Rizier123我只是不知道从何处开始。我记得我知道如何用javascript实现这一点。我不知道substr是否与此相关,但我所知道的是javascript中有一些函数可以做到这一点。你说的范围是什么意思?你是指数组某个部分的值,还是介于下限和上限之间的值(例如
数组(1,3,4,8,2)
,所有值都在3和5之间)?@DaanWilmer有一个html表单,它有两个输入字段。用户可以在第一个字段中键入任何起始值,在另一个字段中键入最后一个值,脚本将返回这两个值之间的所有值,包括起始值和结束值。
$endPosition=$startPosition-array\u search($end,$numarray)+1必须是
$endPosition=array\u search($end,$numarray)-$startPosition+1+1反正
$endPosition=$startPosition-array\u search($end,$numarray)+1必须是
$endPosition=array\u search($end,$numarray)-$startPosition+1+1无论如何