检查PHP中的两个数组索引之间是否存在值


Check if a value exists between two array indexes in PHP

我在PHP 中有一个数组

$array = array(2, 3, 1, 2, 3, 2, 3, 3, 2, 1);

我想检查一下,是否存在索引3到7之间的值,包括索引。

我心里有个变通办法。我可以将索引3到7的数组复制到另一个数组中,然后使用in_array()进行检查,但不知道是否有任何直接的方法。

您可以使用for循环简单地遍历indeces 3到7:

$array = array(2, 3, 1, 2, 3, 2, 3, 3, 2, 1); // your array
$min = 3;                                     // lowest index (inclusive)
$max = 7;                                     // highest index (inclusive)
$search = 3;                                  // value to look for
$found = false;                               // will be set to true if found
for($i = $min; i < $max; $i++) {
    if($array[$i] == $search) {
        $found = true;
    }
}

就像@MarkBaker在对你的问题的评论中所说的那样,有更短的方法可以做到这一点,但这是最简单直接的(IMO)方法。

将in_array()与array_slice()一起使用。。。。

$startPos = 3;
$endPos = 7;
if in_array($needle, array_slice($array, $startPos, $endPos - $startPos + 1)) {...}