[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Многомерный массив
kollega
Помогите в решении задачки. В общем есть многомерный массив. Необходимо как-то вытащить id у дочерних елементов массива. Т.е должно получиться так:

в категории с id=1 есть дочерние элементы с id=2,4,5,6
в категории с id=2 есть дочерние элементы с id=7,8

Как такое можно реализовать?


$data =
Array
(
[
1] => Array
(
[
id] => 1
[parentid] => 0
[posi] => 1
[name] => Оригами
[alt_name] => origami
[descr] => Описание для категории "Оригами"
[keywords] => Ключевые слова для категории "Оригами"
[news_sort] =>
[
news_msort] =>
[
news_number] => 0
[metatitle] => Метатег title для категории "Оригами"
[level1] => 0,2,4
[level] => 0
[childs] => Array
(
[
2] => Array
(
[
id] => 2
[parentid] => 1
[posi] => 1
[name] => Об оригами
[alt_name] => aboutorigami
[descr] => Описание для категории "Об оригами"
[keywords] => Ключевые слова категории "Об оригами"
[news_sort] =>
[
news_msort] =>
[
news_number] => 0
[metatitle] => Метатег title для категории "Об оригами"
[level1] =>
[
level] => 1
)

[
4] => Array
(
[
id] => 4
[parentid] => 1
[posi] => 1
[name] => Схемы
[alt_name] => schemes
[descr] => Описание для категории "Схемы"
[keywords] => Ключевые слова для категории "Схемы"
[news_sort] =>
[
news_msort] =>
[
news_number] => 0
[metatitle] => Метатег title для категории "Схемы"
[level1] => ,5,6
[level] => 1
[childs] => Array
(
[
5] => Array
(
[
id] => 5
[parentid] => 4
[posi] => 1
[name] => Бабочки
[alt_name] => babochki
[descr] => Описание для категории "Бабочки"
[keywords] => Ключевые слова для категории "Бабочки"
[news_sort] =>
[
news_msort] =>
[
news_number] => 0
[metatitle] => Метатег title для категории "Бабочки"
[level1] =>
[
level] => 2
)

[
6] => Array
(
[
id] => 6
[parentid] => 4
[posi] => 1
[name] => Модульное оригами
[alt_name] => modulnoeorigami
[descr] => Описание для категории "Модульное оригами"
[keywords] => Ключевые слова для категории "Модульное оригами"
[news_sort] =>
[
news_msort] =>
[
news_number] => 0
[metatitle] => Метатег title для категории "Модульное оригами"
[level1] =>
[
level] => 2
)

)

)

)

)

[
3] => Array
(
[
id] => 3
[parentid] => 0
[posi] => 1
[name] => Базовые формы
[alt_name] => basicform
[descr] => Описание для категории "Базовые формы"
[keywords] => Ключевые слова категории "Базовые формы"
[news_sort] =>
[
news_msort] =>
[
news_number] => 0
[metatitle] => Метатег title для категории "Базовые формы"
[level1] => 0,7
[level] => 0
[childs] => Array
(
[
7] => Array
(
[
id] => 7
[parentid] => 3
[posi] => 1
[name] => 1 базовая форма
[alt_name] => 1basicform
[descr] => Описание для категории "1 базовая форма"
[keywords] => Ключевые слова для категории "1 базовая форма"
[news_sort] =>
[
news_msort] =>
[
news_number] => 0
[metatitle] => Метатег title для категории "1 базовая форма"
[level1] => ,8
[level] => 1
[childs] => Array
(
[
8] => Array
(
[
id] => 8
[parentid] => 7
[posi] => 1
[name] => 1.1 базовая форма
[alt_name] => 11basicform
[descr] => Описание для категории "1.1 базовая форма"
[keywords] => Ключевые слова для категории "1.1 базовая форма"
[news_sort] =>
[
news_msort] =>
[
news_number] => 0
[metatitle] => Метатег title для категории "1.1 базовая форма"
[level1] =>
[
level] => 2
)

)

)

)

)

)





Спустя 1 минута, 25 секунд (24.11.2011 - 14:43) Zerstoren написал(а):
Вам может рекурсия.
В данный момент она отлично справится с задачей.

Спустя 18 минут, 58 секунд (24.11.2011 - 15:02) kollega написал(а):
Zerstoren. можете привести пример реализации?

Спустя 5 минут, 35 секунд (24.11.2011 - 15:08) linker написал(а):
А может стоит почитать что такое рекурсия? Нам-то привести пример не сложно и даже код написать по твоей проблеме, но поверь, тебе самому будет гораздо полезнее и приятнее.

Спустя 18 минут, 1 секунда (24.11.2011 - 15:26) kollega написал(а):
linker, я читал. только не понял)))

Спустя 14 минут, 5 секунд (24.11.2011 - 15:40) linker написал(а):
По простому, это когда функция вызывает саму себя n-ое количество раз. Пример печати содержимого массива
function printnum($var)
{
if (is_array($var))
{
foreach($var as $index => $val)
printnum($val);
}
else
echo $var;
}

$arr = array(1, 2, array(3, 4), 5, array(6, 7, array(8)));
printnum($arr);

Спустя 1 час, 32 минуты, 50 секунд (24.11.2011 - 17:13) kollega написал(а):
linker, спасибо тебе огромное!!!!!!! очень помог. +
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.