我在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)) {...}