How to put the following this array $arr=array (0=>array (' id ' =>1, ' pid ' = ' = '), 1=>array (' id ' =>208, ' pid ' = =), 2=>array (' Id ' =>3, ' pid ' =>208) 3=>array (' id ' =>4, ' pid ' =>208) '), and become such a form of $arr=array (0=>array (' id ' =>1, ' pid ') = =), 1=>array (' id ' =>208, ' pid ' =>, ' str ' =>array ( 0=>array ( ' id ' =>1, ' pid ' =>208), 1=>array (' id ' =>4, ' pid ' =>208)));
Reply to discussion (solution)
http://bbs.csdn.net/topics/370094009
$BRR =array (), foreach ($arr as $k + $v) {if (Empty ($v [' pid])) if (Isset ($brr [$v [' ID ']]) {$BRR [$v [' id ']][]= $v [' id ']; $BRR [$v [' id ']][]= $v [' pid '];} else$brr[$v [' id ']]= $v else{if (!isset ($brr [$v [' pid]]) $brr [$v [' PID ']]=array () $brr [$v [' PID ']][' str '][]= $v;}} Sort ($BRR);
http://bbs.csdn.net/topics/370094009
Moderator this gets the result is this, if the build for 4 of the removal is good ah, because the 4 has been put into 208 inside, do not need
Array ([ 1] = = Array ( [id] = 1 [pid] = = ) [4] = = Array ( [id] = 4 [PID] + 208 ) [208] = = array ([ID] + 208 [pid] = = [Child ] = array ( [4] = = Array ( [id] = 4 [PID] = 208 ) )))
$BRR =array (), foreach ($arr as $k + $v) {if (Empty ($v [' pid])) {if (!isset ($brr [$v [' ID ']]) $BRR [$v [' id ']]= $v;} Else{if (!isset ($brr [$v [' pid]]) $brr [$v [' PID ']]=array (); $brr [$v [' PID ']][' str '][]= $v;}} Sort ($BRR);