为什么natsort在并入for循环时会在这个数组数组上失败?

时间:2014-04-11 16:17:55

标签: php arrays sorting

在我的网站的一个页面上,我在9个不同的阵列上连续有9个natsorts,一切都按预期工作:

natsort($Array1);
natsort($Array2);
natsort($Array3);
natsort($Array4);
natsort($Array5);
natsort($Array6);
natsort($Array7);
natsort($Array8);
natsort($Array9);

但是,我尝试构造一个数组数组,并将其合并到for循环中,如下所示:

$MasterArray = array($Array1, $Array2, $Array3, $Array4, $Array5, $Array6, $Array7, 
$Array8, $Array9);

for ($i = 0; $i < 9; $i++) {
    natsort($MasterArray[$i]);
}

这种情况失败了,为什么这是无效的?

注意:error_log ---&gt; PHP致命错误:无法使用[]进行读取....使用$ MasterArray是问题。

1 个答案:

答案 0 :(得分:0)

使用

MasterArray = array(&$Array1, &$Array2, &$Array3, &$Array4, &$Array5, &$Array6, &$Array7, &$Array8, &$Array9);

&是&#34;参考&#34;链接到原始数组...没有&#34;&amp;&#34;,您的$MasterArray = array($Array1, ...)创建$ MasterArray与副本 $ Array1等,所以排序重新排序复制....

使用&,它会创建一个指向原始$ Array1等的链接,因此排序将重新排序原始$ Array1