我有一个$Percentages1
数组,我使用arsort()
按降序排序,然后我使用名为array_keys()
的{{1}}获取了一个包含新密钥订单的数组
我的问题是我现在如何将另一个数组$keyorder
重新排列为与$Percentages2
相同的键顺序?
非常感谢任何帮助!非常感谢!
编辑 - 按要求编码:
$Percentages1
答案 0 :(得分:0)
如果你不想创建另一个数组变量,那么这里最简单的方法就是遍历$keyorder
并将$Percentages2
对应键上的元素附加到一个新数组上;。
// Sorted as you already have it...
$keyorder = array_keys($Percentages1);
// Final array
$output = array();
foreach ($keyorder as $key) {
$output[$key] = $Percentages2[$key];
}
// Don't need the source anymore
unset($Percentages2);
附加到$output
的关键顺序将保留在最终结果中。
给定输入数组,这会产生
print_r($output);
Array
(
[2] => 9.42
[0] => 2.5
[1] => 3.52
[4] => 0.35
[3] => 9.81
)
您实际上并不需要使用array_keys()
。在致电arsort()
之后,您可以foreach
对已排序的$Percentages1
进行排序,并按密钥排序为$output
:
// Skip array_keys, and read the sorted array directly
arsort($Percentages1);
foreach ($Percentages1 as $key => $value) {
// Same as before inside the loop
$output[$key] = $Percentages2[$key];
}