У меня есть массив такого вида:
Array
(
[14] => Array
(
[page_id] => 14
[type] =>
[menu_id] => 2
[page_name] => Каталог товаров
[parent_id] => 0
[alias] => catalog
[pic] =>
[meta_title] =>
[keywords] =>
[description] =>
[h1] =>
[position] => 1
[text] =>
[visible] => 1
[childs] => Array
(
[6] => Array
(
[page_id] => 6
[type] =>
[menu_id] => 2
[page_name] => Категория 1
[parent_id] => 14
[alias] => cat1
[pic] => 1.jpg
[meta_title] =>
[keywords] =>
[description] =>
[h1] =>
[position] => 1
[text] =>
[visible] => 1
[childs] => Array
(
[19] => Array
(
[page_id] => 19
[type] =>
[menu_id] => 2
[page_name] => Категория 1.1
[parent_id] => 6
[alias] => cat1-1
[pic] =>
[meta_title] =>
[keywords] =>
[description] =>
[h1] =>
[position] => 1
[text] =>
[visible] => 1
)
[20] => Array
(
[page_id] => 20
[type] =>
[menu_id] => 2
[page_name] => Категория 1.2
[parent_id] => 6
[alias] => cat1-2
[pic] =>
[meta_title] =>
[keywords] =>
[description] =>
[h1] =>
[position] => 2
[text] =>
[visible] => 1
)
)
)
[7] => Array
(
[page_id] => 7
[type] =>
[menu_id] => 2
[page_name] => Категория 2
[parent_id] => 14
[alias] => cat2
[pic] => 3.jpg
[meta_title] =>
[keywords] =>
[description] =>
[h1] =>
[position] => 2
[text] =>
[visible] => 1
[childs] => Array
(
[25] => Array
(
[page_id] => 25
[type] =>
[menu_id] => 2
[page_name] => Категория 2.1
[parent_id] => 7
[alias] => cat2-1
[pic] =>
[meta_title] =>
[keywords] =>
[description] =>
[h1] =>
[position] => 1
[text] =>
[visible] => 1
)
)
)
)
)
[18] => Array
(
[page_id] => 18
[type] =>
[menu_id] => 2
[page_name] => Контакты
[parent_id] => 0
[alias] => contacts
[pic] =>
[meta_title] =>
[keywords] =>
[description] =>
[h1] =>
[position] => 5
[text] =>
[visible] => 1
)
)
Так вот бьюсь уже долго с такой задачей:
у меня GETом поступает значение алиаса, например cat1. Мне надо пробежаться по массиву, найти это значение и у ключа, который содержит это значение, вывести [page_name].
Перечитал много всего, но так и не удалось реализовать.
Попробовал сделать сам через рекурсию:
function findToMass($arr, $search) {
$result = array();
foreach($arr as $k => $v) {
if ($v == $search) $result[] = $v;
if (is_array($arr[$k])) findToMass($v, $search);
}
return $result;
}
Таким способом получилось вывести только сам найденный параметр.
Подскажите, пожалуйста, какой-то способ.
Спасибо.