Вы здесь:

Поиск переменной в многомерном массиве

Задача: поиск переменной в многомерном массиве.

Зачем это нам нужно? Один из примеров: это меню категорий. У меня был проект в котором нужно было найти в многомерном массиве данные. Если найдено — то добавлялся элементу класс, если нет — то нет.

Само собой in_array нам не подходит, так как у нас многомерный массив.

Так что нам нужен аналог PHP функции in_array для многомерного массива. В связи с этим, после долгих поисков я нашел готовую функцию, которая выполняет вышеназванную задачу.

Код рабочий, проверен на практике.

Код

Сама функция выглядит так:


<?
function in_multi_array($needle, $haystack)
{
$in_multi_array = false;
if(in_array($needle, $haystack))
{
$in_multi_array = true;
}
else
{    
for($i = 0; $i < sizeof($haystack); $i++)
{
if(is_array($haystack[$i]))
{
if(in_multi_array($needle, $haystack[$i]))
{
$in_multi_array = true;
break;
}
}
}
}
return $in_multi_array;
}
?>

А вот код для ее запуска (наше условие):


<?	
if ( in_multi_array( $needle, $haystack ) ) {
echo 'Найдено';
} else {
echo 'Соответствий нет';
}
//$needle <- Тут что мы ищем
//$haystack <- Тут многомерный массив, в котором мы ищем
?>

$needle <- Тут что мы ищем

$haystack <- Тут многомерный массив, в котором мы ищем

Заодно приведу вам пример многомерного массива:


Array
(
[0] => Array
(
[value] => 30
[description] => 30 секунд
)
[1] => Array
(
[value] => 45
[description] => 45 секунд
)
[2] => Array
(
[value] => 60
[description] => 1 минута
)
[3] => Array
(
[value] => 120
[description] => 2 минуты
)
)

Поделиться в telegram
Telegram
Поделиться в vk
VK
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в linkedin
LinkedIn
Материал написан
Станислав Волкер

Станислав Волкер