Denna skulle jag vilja visa i rättordning och med ett schysst indrag för subnivåer enligt förljande funktion som jag har försökt snickra ihop:
function displayChildren ( $parent, $level, $array )
{
/*
The format of the array is as such:
Array
(
[0] => Array
(
[key01] => Value01
[key02] => Value02
[key03] => Value03
[key04] => Value04
)
[1] => Array
(
[key01] => Value01
[key02] => Value02
[key03] => Value03
[key04] => Value04
)
[2] => Array
...
);
*/
$arrTemp01 = array();
$keyId = "parentId";
// Retrive all children of $parent and put them in the temp arry $arrTemp01.
for ( $i = 0; $i < count ( $array ); $i++ ) // Loop trough every main array element.
{
// In every sub array, check för the right value in the right key.
if ( $array [$i][$keyId] == $parent )
{
$arrTemp01[$i] = $array [$i];
}
}
// Display each child, if there where any children that is.
foreach ( $arrTemp01 as $key => $value )
{
echo ( str_repeat ( " ", $level ).$value['descr']." Current key: ".$key."<br />\n" );
//echo "Current key: ".$key."<br />";
// Call this function again 2 display this child's children.
displayChildren ( $key, ($level+1), $array);
}
}
Sen anropar jag funktionen med:
displayChildren ( "root", 0, $testarray );
Problemet är att jag inte ser subarrayen med det största indexvärdet (nr 11).
Varför är det så?
Sen har jag även en andra undran som jag är nyfiken på.
Om jag sätter en subarray med index '0' (noll) så fastnar loopen, varför är det någon skillnad?