对数组进行排序并获取密钥

时间:2016-07-19 06:21:22

标签: php arrays

我有两个数组 第一阵列:

$array_1 = array('50','20','30');

第二阵列:

$array_2 = array('50','30','20');

通过将rsort应用于$array_1

来生成第二个数组

如何获得另一个像

这样的键数组
$key_array = ('0','2','1');

5 个答案:

答案 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);