[ create a new paste ] login | about

Link: http://codepad.org/6Qge3WOw    [ raw code | output | fork ]

PHP, pasted on Jan 9:
<?php
$retv = array();

array_push($retv, array('record-id' => 1, 'record-parent' => 0));
array_push($retv, array('record-id' => 2, 'record-parent' => 1));
array_push($retv, array('record-id' => 7, 'record-parent' => 0));
array_push($retv, array('record-id' => 8, 'record-parent' => 7));
array_push($retv, array('record-id' => 9, 'record-parent' => 8));


$ret = array('root'=>array());
$ref[0] =& $ret['root'];

foreach($retv as $row) {
   $p=$row['record-parent'];
   $i=$row['record-id'];

   $ref[$p][$i] = array('data'=>$row,'ch'=>array());
   $ref[$i] =& $ref[$p][$i]['ch'];
}
echo '<pre>'; print_r($ret); echo '</pre>';

?>


Output:
<pre>Array
(
    [root] => Array
        (
            [1] => Array
                (
                    [data] => Array
                        (
                            [record-id] => 1
                            [record-parent] => 0
                        )

                    [ch] => Array
                        (
                            [2] => Array
                                (
                                    [data] => Array
                                        (
                                            [record-id] => 2
                                            [record-parent] => 1
                                        )

                                    [ch] => Array
                                        (
                                        )

                                )

                        )

                )

            [7] => Array
                (
                    [data] => Array
                        (
                            [record-id] => 7
                            [record-parent] => 0
                        )

                    [ch] => Array
                        (
                            [8] => Array
                                (
                                    [data] => Array
                                        (
                                            [record-id] => 8
                                            [record-parent] => 7
                                        )

                                    [ch] => Array
                                        (
                                            [9] => Array
                                                (
                                                    [data] => Array
                                                        (
                                                            [record-id] => 9
                                                            [record-parent] => 8
                                                        )

                                                    [ch] => Array
                                                        (
                                                        )

                                                )

                                        )

                                )

                        )

                )

        )

)
</pre>


Create a new paste based on this one


Comments: