1

У меня есть многомерный массив, который имеет родительские дочерние отношения.Отобразить иерархический многомерный массив с родительским номером нумерации

Я хочу отобразить это как список численных значений, представляющих их родителей в соответствующем порядке.

Array 
(
    [0] => Array 
     (
      [name] => Category 1 
      [id] => 6 
      [children] => Array 
       (
        [0] => Array 
         (
          [name] => Category 2 
          [id] => 7 
          [children] => Array 
           (
            [0] => Array 
             (
              [name] => cricket1 
              [id] => 19 
              [children] => Array 
               (
                [0] => Array 
                 (
                  [name] => cricket2 
                  [id] => 21 
                  [children] => 
                 ) 

               ) 

             ) 

           ) 

         ) 

        [1] => Array 
         (
          [name] => another category 
          [id] => 15 
          [children] => Array 
           (
            [0] => Array 
             (
              [name] => new 1 
              [id] => 18 
              [children] => 
             ) 

           ) 

         ) 

       ) 

     ) 

    [1] => Array 
     (
      [name] => Category 3 
      [id] => 8 
      [children] => Array 
       (
        [0] => Array 
         (
          [name] => new category 
          [id] => 11 
          [children] => 
         ) 

       ) 

     ) 

    [2] => Array 
     (
      [name] => Sazzad 
      [id] => 9 
      [children] => Array 
       (
        [0] => Array 
         (
          [name] => Mahmud 
          [id] => 10 
          [children] => 
         ) 

       ) 

     ) 

) 

Я хочу показать этот массив, как показано ниже:

 
    1.  Category 1 
    1.1  Category 2 
    1.1.1 cricket1 
    1.1.1.1 cricket2 
    1.2  another category 
    1.2.1 new 1 
    2.  Category 3 
    2.1  new category 
    3.  Sazzad 
    3.1  Mahmud 

Как я могу достичь этой системы нумерации с использованием PHP ??

Заранее спасибо.

+0

Яп ... Вот URL массива: http://pastebin.com/ixcRuvAf – user3607351

ответ

1

Вы можете использовать простую рекурсивную функцию:

function makeOneLevelArray($in, &$out, $prefixLevel = '') { 
    $level = 1; 
    foreach ($in as $v) { 
     $out[] = $prefixLevel . $level . ' ' . $v['name']; 
     if (!empty($v['children'])) { 
      makeOneLevelArray($v['children'], $out, $prefixLevel . $level . '.'); 
     } 
     $level++; 
    } 
} 

$outputArray = array(); 
makeOneLevelArray($inputArray, $outputArray); 
print_r($outputArray); 

demo