我正在尝试按多个值对多维数组进行排序,但我不断收到错误:
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()
来检查两者。
任何可能导致此问题的想法和/或解决方案是什么?
答案 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()
的问题是什么。