Reacties op het script [PHP] array_dump functie
|
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'. |
|
|
|
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.
<?php
/**
* a function to view your array in detail. you don't need to worry about $space. it's for the layout.
*
* @license http://www.gnu.org/licenses/gpl.html
* @author stijn1989 <stijnleenknegt@gmail.com>
* @version Versie 1.0
* @package PHP
*/
// full error reporting
//error_reporting(E_ALL);
/**
* this is a function that gives you big details of your array
*
* @param array $array
* @param integer $space
* @return void
*/
function array_dump( $array , $space = 0, $kno='')
{
if( is_array( $array ) === false ) {
die('You must give an array type as parameter for this function!');
}
//show the branch
if( $space != 0 ) {
echo "<img src=\"images/tree_1.gif\">";
for( $i = 0 ; $i < $space ; $i++ ) {
echo "<img src=\"images/tree_4.gif\">";
}
}
echo "<img src=\"images/branch.png\">";
echo " ";
echo "<b>Array: [$kno] </b>";
echo count($array)." keys/values";
echo "<br />";
//show the leafs
$c = 1;
foreach($array as $k => $v) {
$kno=$k;
if( is_array( $v ) === true ) {
array_dump($v , $space + 3, $kno);
} else {
if( $space != 0 ) {
echo "<img src=\"images/tree_3.gif\">";
for( $i = 0 ; $i < $space ; $i++ ) {
echo "<img src=\"images/space.gif\">";
}
}
echo ( count($array) == $c ) ? "<img src=\"images/tree_2.gif\">" : "<img src=\"images/tree_1.gif\">";
echo "<img src=\"images/leaf.png\">";
echo " ";
echo "key: <b>" . $k . "</b>";
echo " <b>-</b> ";
echo "value: <b>";
if (is_null($v)) echo "<i>NULL</i>";
else echo htmlentities($v);
echo "</b>";
echo " <b>-</b> ";
echo "type: <b>" . gettype( $v ) ."</b>";
echo "<br />";
}
$c++;
}
}
?>
<?php /** * a function to view your array in detail. you don't need to worry about $space. it's for the layout. * * @license http://www.gnu.org/licenses/gpl.html * @author stijn1989 <stijnleenknegt@gmail.com> * @version Versie 1.0 * @package PHP */ // full error reporting //error_reporting(E_ALL); /** * this is a function that gives you big details of your array * * @param array $array * @param integer $space * @return void */ function array_dump( $array , $space = 0, $kno='') { die('You must give an array type as parameter for this function!'); } //show the branch if( $space != 0 ) { echo "<img src=\"images/tree_1.gif\">"; for( $i = 0 ; $i < $space ; $i++ ) { echo "<img src=\"images/tree_4.gif\">"; } } echo "<img src=\"images/branch.png\">"; echo "<b>Array: [$kno] </b>"; //show the leafs $c = 1; foreach($array as $k => $v) { $kno=$k; array_dump($v , $space + 3, $kno); } else { if( $space != 0 ) { echo "<img src=\"images/tree_3.gif\">"; for( $i = 0 ; $i < $space ; $i++ ) { echo "<img src=\"images/space.gif\">"; } } echo ( count($array) == $c ) ? "<img src=\"images/tree_2.gif\">" : "<img src=\"images/tree_1.gif\">"; echo "<img src=\"images/leaf.png\">"; echo "key: <b>" . $k . "</b>"; } $c++; } } ?>
Ronald |
|
|
|
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 ;) ) |
|
|
|
Gepost op: 24 januari 2008 - 17:27 |
|
|
|
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. |
|
|
|