login  Naam:   Wachtwoord: 
Registreer je!
Scripts > PHP > Handige scripts > [PHP] array_dump functie


Reacties op het script [PHP] array_dump functie

Offline  Thomas
Gepost op: 04 augustus 2006 - 12:07
Moderator



Leuk.

Ik gebruik meestal

  1. <?php
  2. echo "<pre>".print_r($array, 1)."</pre>";
  3. ?>


Dat is vaak duidelijk genoeg 

Offline  Gerard
Gepost op: 04 augustus 2006 - 21:52
Ouwe rakker



Met die recursieve array zie je de naam van de array niet. In het voorbeeld dus 'friends'.

Offline  ronverdonk
Gepost op: 23 december 2006 - 15:03
Nieuw lid



Omdat je niet kunt zien wat de array naam (key) is heb ik je code een beetje aangepast. De array key/naam staat in variable $kno.
Ook druk ik de variabele af met htmlentities() omdat ik soms statement in een array heb staan.
  1. <?php
  2. /**
  3.  * a function to view your array in detail. you don't need to worry about $space. it's for the layout.
  4.  *
  5.  * @license http://www.gnu.org/licenses/gpl.html
  6.  * @author stijn1989 <stijnleenknegt@gmail.com>
  7.  * @version Versie 1.0
  8.  * @package PHP
  9.  */
  10. // full error reporting
  11. //error_reporting(E_ALL);
  12.  
  13. /**
  14.  * this is a function that gives you big details of your array
  15.  *
  16.  * @param array $array
  17.  * @param integer $space
  18.  * @return void
  19.  */
  20. function array_dump( $array , $space = 0, $kno='')
  21. {
  22.  
  23. if( is_array( $array ) === false ) {
  24. die('You must give an array type as parameter for this function!');
  25. }
  26.  
  27. //show the branch
  28. if( $space != 0 ) {
  29. echo "<img src=\"images/tree_1.gif\">";
  30. for( $i = 0 ; $i < $space ; $i++ ) {
  31. echo "<img src=\"images/tree_4.gif\">";
  32. }
  33. }
  34. echo "<img src=\"images/branch.png\">";
  35. echo " ";
  36. echo "<b>Array: [$kno]  </b>";
  37. echo count($array)." keys/values";
  38. echo "<br />";
  39.  
  40. //show the leafs
  41. $c = 1;
  42. foreach($array as $k => $v) {
  43. $kno=$k;
  44. if( is_array( $v ) === true ) {
  45. array_dump($v , $space + 3, $kno);
  46. } else {
  47. if( $space != 0 ) {
  48. echo "<img src=\"images/tree_3.gif\">";
  49. for( $i = 0 ; $i < $space ; $i++ ) {
  50. echo "<img src=\"images/space.gif\">";
  51. }
  52. }
  53. echo ( count($array) == $c ) ? "<img src=\"images/tree_2.gif\">" : "<img src=\"images/tree_1.gif\">";
  54. echo "<img src=\"images/leaf.png\">";
  55. echo " ";
  56. echo "key: <b>" . $k . "</b>";
  57. echo " <b>-</b> ";
  58. echo "value: <b>";
  59. if (is_null($v)) echo "<i>NULL</i>";
  60. else echo htmlentities($v);
  61. echo "</b>";
  62. echo " <b>-</b> ";
  63. echo "type: <b>" . gettype( $v ) ."</b>";
  64. echo "<br />";
  65. }
  66. $c++;
  67.  
  68. }
  69. }
  70. ?>

Ronald  

Offline  Richard
Gepost op: 02 september 2007 - 11:26
Crew algemeen



Jahoor, kom ik weer aan (beetje laat )

(Eerst nog @Prox: je bedoelt geneste arrays, recursief is zelfaanroepend)

1) Recursieve arrays ($GLOBALS bijv.) zorgen voor een infinite loop, aangezien $GLOBALS er zelf ook in voorkomt, en zichzelf steeds blijft aanroepen. Een maximum diepte aangeven misschien?
2) Je geeft nu $space mee als variabele aan de functie, waarom maak je deze niet static binnen de functie zelf? :/ Ik verbaas me hier een beetje over 
3) Verder is de print_r functie van php zelf toch duidelijk genoeg, dit is enkel vertraging voor je site (no offense ;) )

Offline  nemesiskoen
Gepost op: 24 januari 2008 - 17:27
Gouden medaille

PHP expert




Vertraging my ass, je gaat toch nooit deze functie gebruiken bij een website zelf? Dit is om te debuggen...


Enkel aanvullende informatie, vragen en antwoorden op vragen zijn welkom.
 
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.047s