我正在尝试对多维数组进行排序,但是当循环中的排序工作时,它不会在循环运行后保存该排序。我需要做些什么来制作排序棒?
function cmp_by_orderNumber($a, $b) {
return $a["ORDER"] - $b["ORDER"];
}
foreach($response['content']['listings'] as $i => $v) {
usort($v['MEMBERS'], "cmp_by_orderNumber");
// sorted!
echo '<pre>'; print_r($v); echo '</pre>';
}
// sort has reverted!
echo '<pre>'; print_r($response['content']['listings']); echo '</pre>';
答案 0 :(得分:5)
您需要通过引用迭代数组。
foreach($response['content']['listings'] as &$v) { // see the little & sign here
usort($v['MEMBERS'], "cmp_by_orderNumber");
// sorted!
echo '<pre>'; print_r($v); echo '</pre>';
}
如果不复制子阵列,则更改副本,而不是原始副本。