Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从平面阵列构建嵌套阵列-说明_Php_Arrays - Fatal编程技术网

Php 从平面阵列构建嵌套阵列-说明

Php 从平面阵列构建嵌套阵列-说明,php,arrays,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($

如果有人能解释,请说出这句话:

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

?>

非常感谢。
Wojciech

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

这意味着无论发生在其中一个身上的是什么,都会发生在两个身上


演示:

nice,我理解=&operator的含义,但为什么要以这样的方式使用“$ref[$I]=&$ref[$p][$I]['ch'”?