Проверяем наличие значения в многомерном массиве на PHP
Привет, друзья! Сегодня мы с вами немного поговорим о массивах. А именно о том, как осуществить по ним корректный поиск на совпадение. В одной из статей мы подробно рассмотрели все варианты поиска совпадений в одномерных массивах.
Для того чтобы вы понимали, о чем идем речь, поясню. Одномерный массив (на примере PHP) – это:
$number = array("Один", "Два", "Три", "Четыре", "Пять", "Шесть");
А многомерный, например, двух-, – это:
$number = array(
array("Один", "Два", "Три"),
array("Четыре", "Пять", "Шесть")
);
Так вот, привычная функция «in_array», которая существует в PHP, не сможет обработать второй массив. Именно поэтому я поделюсь с вами готовой функцией, воспользовавшись которой, вы сможете проверить на соответствие ваши данные в многомерном массиве.
Функция эта выглядит так:
function in_multiarray($e, $a) {
$t = sizeof($a) - 1;
$b = 0;
while($b <= $t) {
if(isset($a[$b])) {
if($a[$b] == $e) {
return true;
} else {
if(is_array($a[$b])) {
if(in_multiarray($e, ($a[$b]))) {
return true;
}
}
}
}
$b++;
}
return false;
}
Используйте ее без изменения. А это пример ее использования:
$number = array(
array("Один", "Два", "Три"),
array("Четыре", "Пять", "Шесть")
);
if(in_multiarray("Два", $number)) {
echo "Элемент есть в массиве!";
}
Соответственно, при наличии совпадения будет выполняться нужное вам действие. В моем случае – это простой вывод сообщения.