php多维数组按顺序打印的方法?

图片描述

图片描述

就是像上面一张图片那样的,不定深度的多维数组,按照一定规律的缩进和换行的形式打印出来,就像下面那张图片那样的。

我自己写不出来,感觉有很多问题,希望帮我看看,谢谢。

function self_print($array,$count = 0)
{
    $output = '';

    while(list($key,$value) = each($array))
   {
       $output .= str_repeat('  ',$count).$key.'=>';
       if(is_array($value))
       {
           $count++;


           $output .= '<br/>';

           $tmp = self_print($value,$count);
           $output .= $tmp;
        }
        else
        {

            $output .= $value; 
        }
    $output .= '<br/>';
}
return $output;
}
阅读 6.3k
4 个回答

如果是要图一的话可以试试var_exportprint_r,如果是要图二的话用下面的函数吧。

function printArrayRecursive($array, $return = false) {
    $html = "<ul>";
    foreach($array as $key => $arr) {
        $html .= "<li>";
        if( is_array( $arr ) ) {
            $html .= "<div>$key => </div>";
            $html .= printArrayRecursive( $arr, true );
        } else $html .= "<div>$key => $arr</div>";
        $html .= "</li>";
    }
    $html .= "</ul>";
    if( $return ) return $html;
    else echo $html;
}

不在乎里面有数据类型输出,就试一下

echo '<pre>';
echo print_r($a);
echo '</pre>';

或者

echo '<pre>';
echo json_encode($a);
echo '</pre>';

json那种会输出
clipboard.png
实际上是用css控制的,因此,你将css样式 copy到你的项目,然后在使用给相应字段加上class就能达到jsonview这种效果。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题