Я бы использовал цифры в качестве ключей для индекса:
$data = '1;3;5;7;9';
$index = array_flip(explode(';', $data));
Теперь вы можете просто использовать isset
или array_key_exists
, чтобы проверить, находится ли это число в $data
:
for ($i=0, $n=count($someArray); $i<$n; ++$i) {
if (array_key_exists($index, $i)) {
// $i is in $data
}
}
Вы можете даже сделать обратное, повторить числа в $data
и посмотреть, находятся ли они в диапазоне от 0 до count($someArray)
-1:
$data = '1;3;5;7;9';
$n = count($someArray);
foreach (explode(';', $data) as $number) {
if (0 <= $number && $number < $n) {
// $number is in range from 0 to $n-1
}
}