我想根据“匹配”索引值对数组进行排序,如下所示:
Array
(
[0] => Array
(
[U] => Array
(
[user_id] => 10443
[match] => 100
)
)
)
此数组的匹配值如25,50,75等......
我尝试了以下代码,但没有奏效:
function array_sort_by_column(&$arr, $col, $dir = SORT_ASC) {
$sort_col = array();
foreach ($arr as $key=> $row) {
$sort_col[$key] = $row['U'][$col];
}
return array_multisort($sort_col, $dir, $arr);
}
$a_sl =$this->array_sort_by_column($a_sl, 'match');
其中$ a_sl包含上面提到的数组结构。
如何在不破坏数组结构的情况下根据匹配对此数组进行排序。
答案 0 :(得分:0)
我使用以下代码按子值对数组进行排序:
function array_sort_subval($a, $subkey) {
if (!is_array($a) || count($a) == 0) {
return $a;
}
$i = 0; // Required to work around items with the same subkey value
foreach($a as $k=>$v) {
$b[$v[$subkey] . $i] = $v;
$i++;
}
ksort($b);
foreach($b as $key=>$val) {
$c[] = $val;
}
return $c;
}
要对数组的更深层元素进行排序,只需更改行
即可$b[$v[$subkey] . $i] = $v;
获取要排序的更深的$子键。