使用array_multisort时“数组大小不一致”错误

时间:2013-09-17 14:53:13

标签: php sorting

我正在尝试按多个值对多维数组进行排序,但我不断收到错误:

Warning: array_multisort() [function.array-multisort]: Array sizes are inconsistent in - on line 19

第19行是我调用array_multisort函数的地方:

array_multisort($column1, $column2, $column3, $row);

我无法在测试中复制这个问题,所以我没有太多运气来解决这个问题。

所以基本上我将MySql表保存为多维关联数组。然后我试图通过三个不同的列对行进行排序。我检查过并且传递到array_multisort()函数的所有数组都是相同的大小。我通过手动浏览每一行并使用sizeof()来检查两者。

任何可能导致此问题的想法和/或解决方案是什么?

2 个答案:

答案 0 :(得分:5)

回答你的原始问题,这通常发生在一个未经启动的变量上。 例如:

foreach ($arr_this_referers as $int_key => $arr_row) {
    $arr_vol[$int_key]  = $arr_row['int_cnt'];
}
由于未启动变量$ arr_vol,

会导致警告,但在for循环之前初始化变量:

$arr_vol = array();
foreach ($arr_this_referers as $int_key => $arr_row) {
    $arr_vol[$int_key]  = $arr_row['int_cnt'];
}
array_multisort($arr_vol, SORT_DESC, $arr_this_referers);

...&警告消失了,希望这有帮助。

答案 1 :(得分:1)

我结束时只使用了uasort()。它根本没有给我任何问题,设置cmp逻辑非常简单。

仍然不知道array_multisort()的问题是什么。