Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: все дочерние элементы массива
 
 автор: skinny   (22.12.2012 в 18:55)   письмо автору
 
 

есть массив:

Array
(
    [1] => Array
        (
            [2] => 
            [3] => Array
                (
                    [6] => Array
                        (
                            [7] => Array
                                (
                                    [9] => Array
                                        (
                                            [10] => Array
                                                (
                                                    [17] => 
                                                )

                                            [11] => 
                                            [12] => Array
                                                (
                                                    [19] => 
                                                )

                                        )

                                )

                            [8] => Array
                                (
                                    [13] => Array
                                        (
                                            [14] => Array
                                                (
                                                    [26] => 
                                                )

                                        )

                                )

                        )

                    [16] => 
                    [20] => 
                    [22] => 
                )

            [4] => 
            [5] => 
        )

    [23] => Array
        (
            [24] => 
            [25] => 
        )

)

необходимо для каждого из его ID получить все входящие в него элементы, а именно, нужно получить массив вот в таком виде:

Array
(
    [1] => Array
        (
            [0] => 2
            [1] => 3
            [2] => 4
            [3] => 5
            [4] => 6
            [5] => 7
            [6] => 9
            [7] => 10
            [8] => 17
            [9] => 11
            [10] => 12
            [11] => 19
            [12] => 8
            [13] => 13
            [14] => 14
            [15] => 26
            [16] => 16
            [17] => 20
            [18] => 22            
        )

    [2] => Array
        (                
        )
    [3] => Array
        (            
            [0] => 6
            [1] => 7
            [2] => 9
            [3] => 10
            [4] => 17
            [5] => 11
            [6] => 12
            [7] => 19
            [8] => 8
            [9] => 13
            [10] => 14
            [11] => 26                      
        )
    [6] => Array
        (           
            [0] => 7
            [1] => 9
            [2] => 10
            [3] => 17
            [4] => 11
            [5] => 12
            [6] => 19
            [7] => 8
            [8] => 13
            [9] => 14
            [10] => 26
            [11] => 16
        )
    [7] => Array
        (           
            [0] => 9
            [1] => 10
            [2] => 17
            [3] => 11
            [4] => 12
            [5] => 19
        )

    [8] => Array
        (
            [0] => 13
            [1] => 14
            [2] => 26
        )


    [23] => Array
        (
            [0] => 24
            [1] => 25
        )

)

я там расписал не все элементы, думаю такой структуры достаточно, для каждого номера нужны все номера в него входящие (все дочерние, всех уровней вложенности)

  Ответить  
 
 автор: Sfinks   (23.12.2012 в 13:07)   письмо автору
 
   для: skinny   (22.12.2012 в 18:55)
 

<?php 
/** 
 * Flattens an array, or returns FALSE on fail. 
 */ 
function array_flatten($array) { 
  if (!
is_array($array)) { 
    return 
FALSE
  } 
  
$result = array(); 
  foreach (
$array as $key => $value) { 
    if (
is_array($value)) { 
      
$result array_merge($resultarray_flatten($value)); 
    } 
    else { 
      
$result[$key] = $value
    } 
  } 
  return 
$result

?> 
не проверял, скопировано из мана.

  Ответить  
 
 автор: skinny   (23.12.2012 в 16:36)   письмо автору
 
   для: Sfinks   (23.12.2012 в 13:07)
 

не сработало
и что такое вообще Flatten an array?

Спасибо за участие.
вопрос закрыт
это была одна из функций
в процессе разработки пришлось переписать некоторые другие функции и эту в том числе, после множественных мучений удалось получить нужный массив другим способом.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования