我有两个数组 第一阵列:
$array_1 = array('50','20','30');
第二阵列:
$array_2 = array('50','30','20');
通过将rsort
应用于$array_1
如何获得另一个像
这样的键数组$key_array = ('0','2','1');
答案 0 :(得分:1)
而不是rsort
使用arsort
,而不是<{p}
按相反的顺序对数组进行排序并保持索引关联。
之后 - 使用array_keys
:
$array_1 = array('50','20','30');
arsort($array_1);
print_r(array_keys($array_1));
答案 1 :(得分:0)
rsort函数将重新索引数组键:
注意:此函数为数组中的元素指定新键。它将删除可能已分配的任何现有密钥,而不仅仅是重新排序密钥。
您可以使用arsort来维护索引关联。然后,您只需使用array_keys即可获得所需的结果。
^^!
将输出
$unsorted = [50, 20, 30]; // array with unsorted values
$in_reverse = $unsorted; // create copy because arsort is by reference
arsort($in_reverse); // do the actual sorting
$keys = array_keys($in_reverse); // fetch the keys
print_r($keys);
答案 2 :(得分:0)
您可以使用arsort函数代替rsort来保留数组键。之后,您将有可能使用array_keys:
String colour = colourMap.get("GR");
答案 3 :(得分:0)
我认为您应该像这样使用已保存的索引进行排序:
$array_1 = array('50','20','30');
arsort($array_1);
$key_array = array_keys($array_1);
var_dump($key_array);
输出:
array(3) { [0]=> int(0) [1]=> int(2) [2]=> int(1) }
答案 4 :(得分:0)
您可以使用 array_keys()功能。
$array = array('50','30','20');
$arr_keys = array_keys($array);