2010-04-16 38 views
5

我想知道是否有方法只打印沒有內容的數組結構。我通常使用print_r來檢查結構,但因爲我的數組包含一些二進制數據,所以我寧願不使用它。打印沒有內容的數組結構?

+0

寫自己的遞歸函數模擬print_r的? – 2010-04-16 04:47:35

回答

12
<?php 
    function print_no_contents($arr) { 
     foreach ($arr as $k=>$v) { 
      echo $k."=> "; 
      if (is_array($v)) { 
       echo "\n"; 
       print_no_contents($v); 
      } 
      else echo "[data]"; 
      echo "\n"; 
     } 
    } 
?> 

*沒有測試這個,但應該讓你開始。

+0

向你的函數中添加一個名爲'$ count = 0'的第二個參數,並將該函數調用爲'print_no_contents($ v,++ $ count);'在前面執行'strrepeat('',$ count)'' ''echo $ k。'=>''部分爲了得到一些不錯的縮進:) – Jelmer 2012-12-24 23:49:16

1

想不出你只是做

foreach ($array as $structure=>$data){ 
    echo $structure."=><br />"; 
} 
+0

這可以作爲一個初學者,很好的答案,但它只會做數組的頂層。你需要做這樣的事情來獲得完整的結構: 'function output_array_structure($ array,$ type =「」){ echo「

    」; foreach($ array as $ structure => $ data){ echo「
  1. $ structure
  2. 」;如果(is_array($ data)){ output_array_structure($ data,「type ='a'」); } } echo「
」; }' – sijpkes 2017-07-20 04:51:55

1

我喜歡用xdebug's var_dump() overload我所有的變量窺探的。你可以給它提供一個ini設置來截斷被捨棄的值,它提供了一些理智的限制(儘管我不確定它通常用二進制數據做什麼)。

ini_set('xdebug.var_display_max_data', 0); 
var_dump($your_variable);

您可以從http://xdebug.org/

1

在這裏下載與數據陣列結構

 echo printArray($your_array); 

     function printArray($a,$return=true) { 
        if(!$return) 
         echo "<pre style=\"font-size:12px;\">".print_r($a,true)."</pre>"; 
        else 
         return "<pre style=\"font-size:12px;\">".print_r($a,true)."</pre>"; 
     }