Hello reader's I have created a conversion format that can convert array in tree structure.
In this code i use while loop but you can either use the recursive also. So here is the function as below:-
function treeze( &$a, $parent_key, $children_key )
{
$orphans = true; $i;
while( $orphans )
{
$orphans = false;
foreach( $a as $k=>$v )
{
// is there $a[$k] sons?
$sons = false;
foreach( $a as $x=>$y )
if( isset($y[$parent_key]) and $y[$parent_key]!=false and $y[$parent_key]==$k )
{
$sons=true;
$orphans=true;
break;
}
// $a[$k] is a son, without children, so i can move it
if( !$sons and isset($v[$parent_key]) and $v[$parent_key]!=false )
{
$a[$v[$parent_key]][$children_key][$k] = $v;
unset( $a[$k] );
}
}
}
}
In the code above every key value have it's own id .
Now in this function you have to send three params , First the Array, Second is parentID and last childrenKey
Finally you can access the function as by code below:-
treeze( $SendArray, 'ID', 'Key' );
echo "<pre>"; print_r( $SendArray);
0 Comment(s)