Re: PHP sucks dick through a straw

[prev] [thread] [next] [lurker] [Date index for 2007/01/11]

From: Andy Armstrong
Subject: Re: PHP sucks dick through a straw
Date: 17:13 on 11 Jan 2007
On 11 Jan 2007, at 15:52, Andy Armstrong wrote:
>    "Complex arrays are sometimes rather copied than referenced. Thus
>     following example will not work as expected." [1]

Although in fact this does work on both PHP 4.4.4 and PHP 5.2.0. Way  
to go with the alarmist documentation which means I still don't know  
whether it's right or just happens to work.

In fact if there's one thing I hate more than PHP itself right now  
it's the fact that its online documentation is rammed to the gills  
with cargo-culted half truths, suspicions and downright rubbish.

<?php

     $list = array(
         '1' => array(
             'name'      => 'Frib',
             'parent_id' => '3'
         ),
         '2' => array(
             'name'      => 'Frob',
             'parent_id' => '3'
         ),
         '3' => array(
             'name'      => 'Top 1',
             'parent_id' => null
         ),
         '4' => array(
             'name'      => 'Top 2',
             'parent_id' => null
         ),
         '5' => array(
             'name'      => 'Frub',
             'parent_id' => '4'
         ),
         '6' => array(
             'name'      => 'Freb',
             'parent_id' => '4'
         )
     );

     $root = array();

     foreach ($list as $id => $obj) {
         if (is_null($obj['parent_id'])) {
             $root[] =& $list[$id];
         } else {
             $list[$obj['parent_id']]['children'][] =& $list[$id];
         }
     }

     print_r($root);

?>


-- 
Andy Armstrong, hexten.net

Generated at 01:01 on 12 Jan 2007 by mariachi 0.52