打印这样的阵列?

时间:2011-12-13 10:47:17

标签: php multidimensional-array

如何打印此数组var_dump($files);生成此<​​/ p>

  array
'Arrow' => 
array
  'Custom' => 
    array
      'original' => 
        array
          ...
      'thumbs' => 
        array
          ...
  'Standard' => 
    array
      'original' => 
        array
          ...
      'thumbs' => 
        array
          ...
'Borders' => 
 array
  'Corners' => 
    array
      'original' => 
        array
          ...
      'thumbs' => 
        array
          ...
  'Embellished Outline' => 
    array
      'original' => 
        array
          ...
      'thumbs' => 
        array
          ...
  'Simple Outline' => 
    array
      'original' => 
        array
          ...
      'thumbs' => 
        array
          ...
  'Solid' => 
    array
      'original' => 
        array
          ...
      'thumbs' => 
        array
          ...
  0 => string 'cannon.gif' (length=10)

我想输出像Arrow / Custom / thumbs / 053_17_HandLeft.gif

4 个答案:

答案 0 :(得分:1)

尝试XDebug,它会替换var_dump以显示,包括语法着色和缩进。

答案 1 :(得分:1)

对于漂亮的轻量级调试,Kint完成了这项工作。 Xdebug非常棒,但是如果仅用于漂亮的打印或var_dump替换,安装似乎有点过分。

答案 2 :(得分:1)

似乎您想从某个递归目录结构输出文件路径列表。这个功能应该有所帮助:

function createPaths(array $files, $prefix = '') {
    $paths = array();

    foreach ($files as $folder => $file) {
        if (is_array($file)) {
            $subPaths = createPaths($file, $prefix . $folder . '/');
            $paths = array_merge($paths, $subPaths);
        } else {
            $paths[] = $prefix . $file;
        }
    }

    return $paths;
}

$files = array(
    'Corners' => array(
        'original' => array(
            '1.jpg',
            '2.gif',
        ),
    ),
    'foo.jpg'
);

var_dump(createPaths($files));

答案 3 :(得分:0)

试试print_r($files);。也许这将扩展所有阵列。