0

我有一个多维数组,当我使用 print_r 时,它看起来像这样:

Array ( 

[car] => Array (   
           [72] => Camry 
           [62] => Lexus 
           [55] => honda 
           [44] => toyota 
                )

[Job] => Array (   
           [70] => Bookstore
           [73] => Cafe 
               ) 

[City] => Array (  
           [68] => Wisconsin
           [63] => Chicago 
           [47] => New York City 
           [46] => Los Angeles 
                ) 
 ) 

这是一个父/子多维数组。可以有任意数量的父母和任意数量的孩子。

如何回显一个多维数组,使其看起来像这样

Car
    Camry 
    Lexus 
    honda 
    toyota

Job
    Bookstore
    Cafe

City
    Wisconsin
    Chicago
    New York City
    Los Angeles

我尝试打印多维数组:

function RecursiveWrite($array) {
                      foreach ($array as $vals) {
                          echo $vals['parent'] . "\n";
                          RecursiveWrite($vals['child']);
                      }
                  }     
RecursiveWrite($categories); // $categories is the name of the array 

当我运行代码时,这不会打印出任何输出。有什么建议么?

4

3 回答 3

1

考虑到制表符和返回符号取决于您想要的 HTML 或 FILE 输出,代码如下:

$tab = "\t"; // tab
$return = "\r"; // return

foreach ($array as $key => $a) {
    echo $key.$return;
    foreach ($a as $value) {
        echo $tab.$value.$return;
    }
}
于 2012-12-01T05:42:54.093 回答
1

创建递归函数:

半伪:

function dumpArr (arr){
  foreach element in arr {
    if element is array/object{
      dumpArr(element)
    }else{
      echo element
    }
  }
}

然后,您可以使用 CSS 来调整内边距、边距等

于 2012-12-01T05:43:37.997 回答
0

下面的代码如你所愿显示:

 <?php
$arrayToPrint = Array (
        'car' => Array (   
        '72' => 'Camry', 
        '62' => 'Lexus', 
        '55' => 'honda', 
        '44' => 'toyota'
        ),
        'Job' => Array (   
        '70' => 'Bookstore',
        '73' => 'Cafe' 
        ) ,
        'City' => Array (  
        '68' => 'Wisconsin',
        '63' => 'Chicago' ,
        '47' => 'New York City', 
        '46' => 'Los Angeles'
        ) 
    ) ;
    echo "output in print_r( ):<pre>";
    print_r($arrayToPrint);
    echo "</pre>";
    echo "output in echo:<br/>";
    foreach($arrayToPrint as $arrayKey=> $arrayValue1) {
        echo '<pre>';
        echo $arrayKey;
            foreach($arrayValue1 as $leafNodeValue) {
                echo '<pre>    '.$leafNodeValue.'</pre>';
            }
        echo '</pre>';
    }
    ?>
于 2012-12-01T06:22:00.783 回答