2011-12-13 150 views
-1

我怎麼能打印此陣var_dump($files);產生這種打印這樣的數組?

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) 

我要像箭輸出/自定義/大拇指/ 053_17_HandLeft.gif

+0

由於您沒有具體說明您希望或期望輸出的結果,所以我已經低調了。你期望看到什麼,你真正看到了什麼。 – Layke

+0

我想你應該指定你的問題。你的輸出應該如何看待?已經嘗試過'print_r'? – Turbotoast

+1

「印刷」是什麼意思? –

回答

1

嘗試XDebug,它取代的var_dump顯示得那樣,包括語法着色和縮進。

+1

啊,對,我雖然很熟悉。的確,這是XDebug的錯。閱讀[這裏](http://xdebug.org/docs/display)。 –

0

嘗試print_r($files);。也許這將擴大所有陣列。

1

對於漂亮的輕量級調試,Kint完成這項工作。 Xdebug非常棒,但是如果只是用於漂亮的打印或var_dump替換,安裝似乎有點矯枉過正。

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));