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

Hal*_*ton 0 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().

什么可能导致这个和/或解决方案是什么?

小智 5

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

foreach ($arr_this_referers as $int_key => $arr_row) {
    $arr_vol[$int_key]  = $arr_row['int_cnt'];
}
Run Code Online (Sandbox Code Playgroud)

由于未启动的变量$ 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);
Run Code Online (Sandbox Code Playgroud)

...&警告消失,希望这会有所帮助.