我有这个数组:
"%{environment}"
现在我想得到:
Array (
[order] => Array ( [0] => 2 [1] => 1 )
[eventid] => Array ( [0] => id_1 [1] => id_2 )
)
基本上我想按顺序值排序数组。
答案 0 :(得分:4)
您需要使用usort
功能才能执行此操作。 (见documentation)
我会推荐另一种Array结构,如下所示:
Array (
[0] => Array ( [order] => 2, [eventid] => id_x )
[1] => Array ( [order] => 1, [eventid] => id_y )
)
然后你可以使用这样的函数对数组进行排序(PHP 5.3或更高版本):
function array_sort_by(&$array, $key, $descending = false) {
$sortByKey =
function ($a, $b) use ($key, $descending) {
if ($a[$key] === $b[$key]) {
return 0;
}
$return = $a[$key] < $b[$key] ? -1 : 1;
return ($descending ? -1 * $return : $return);
};
usort($array, $sortByKey);
}
然后您将调用以下内容:
array_sort_by($yourArray, 'order');
答案 1 :(得分:0)
您可以使用asort。虽然它可以涵盖您的情况,但从长远来看,usort可能是更好的解决方案。
$arr = Array (
"order" => Array ( 0 => 6, 1 => 1,2=>43),
"eventid" => Array ( 0 => 5, 1 => 1,2=>54,3=>0)
);
foreach ($arr as $key => &$value) {
asort($value);
}