之前看过一篇帖子,帖子内容是使用list函数处理树状数据,帖子链接:http://bbs.csdn.net/topics/390524563
list函数的作用是将数组中的数据依次赋值给给定的变量,使用帖子中的代码进行运行尝试,结果发现一个问题,就是list函数在进行数组赋值给变量时,是从数组中第一个元素依次赋值下去,如果list函数第一个参数是数组,而数组的下标是由list函数第二个和第三个参数决定,则最终结果是list的第一个数组参数下标为空:
$t = array( '文章',2,0);
list($a[$pid][$id], $id, $pid) = $t;
print_r($a);
echo $id.'----'.$pid."\n\n\n";
结果:
Array
(
[] => Array
(
[] => 文章
)
)
2----0
如果list函数第三个参数是数组,而数组下标是由list第一个和第二个参数决定,则结果会不一样:
$t = array( '文章',2,0);
$t=array_reverse($t);
print_r($t);
list($pid, $id, $a[$pid][$id]) = $t;
print_r($a);
echo $pid.'----'.$id."\n\n\n";
结果:
Array
(
[0] => 0
[1] => 2
[2] => 文章
)
Array
(
[0] => Array
(
[2] => 文章
)
)
2----0
其中array_reverse函数的作用是倒序重新排列。