从平面构建嵌套数组 - 解释

时间:2012-01-09 18:33:17

标签: php arrays

如果有人可以解释,请注意以下内容:

$ref[$i] =& $ref[$p][$i]['ch'];

在以下代码中执行:

<?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>';

?>

非常感谢。 沃伊切赫

1 个答案:

答案 0 :(得分:1)

它将$ref[0]设置为对$ret['root']

的引用

这意味着无论其中一个发生了什么,都会发生

演示:http://codepad.org/6Qge3WOw