2010-04-16 14 views
5

Ich frage mich, ob es eine Möglichkeit gibt, nur die Struktur des Arrays ohne den Inhalt zu drucken. Ich benutze normalerweise print_r, um die Struktur zu untersuchen, aber weil mein Array einige binäre Daten enthält, würde ich das lieber nicht verwenden.Drucken der Struktur eines Arrays ohne seinen Inhalt?

+0

Ihre eigene rekursive Funktion emuliert print_r schreiben? –

Antwort

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"; 
     } 
    } 
?> 

* habe dies nicht getestet, aber sollte Sie beginnen.

+0

Fügen Sie einen zweiten Parameter mit dem Namen '$ count = 0' zu Ihrer Funktion hinzu und nennen Sie die Funktion' print_no_contents ($ v, ++ $ count); 'Und führen Sie etwas wie' strrepeat ('', $ count) 'vor der 'echo $ k.' => '' Teil, um einen schönen Eindruck zu bekommen :) – Jelmer

1

könnte nicht einfach

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

Dies funktioniert als ein Starter, gute Antwort, aber es würde nur die oberste Ebene des Arrays tun. Sie müssten so etwas tun, um die vollständige Struktur zu erhalten: 'Funktion output_array_structure ($ array, $ type =" ") { echo"

    "; foreach ($ -Array als $ Struktur => $ Daten) { Echo "
  1. $ Struktur
  2. "; if (is_array ($ data)) { output_array_structure ($ data, "type = 'a'"); } } Echo "
"; } ' – sijpkes

1

Ich mag für alle meine variablen Snooping xdebug's var_dump() overload verwenden. Sie können es mit einer Ini-Einstellung versehen, um die ausgegebenen Werte abzuschneiden, und es bietet anfangs einige vernünftige Grenzen (obwohl ich nicht sicher bin, was es normalerweise mit binären Daten tut).

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

Sie können es herunterladen von http://xdebug.org/

1

hier ist Arraystruktur mit Daten

 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>"; 
     } 
Verwandte Themen