PHP重新编号数组但保留序列

时间:2015-02-11 18:53:30

标签: php arrays

我有一个这样的数组:

array(13,4,7,1,16);

我想重新计算数组,但我想保留序列,如下所示:

array(4,2,3,1,5);

我该怎么做?

2 个答案:

答案 0 :(得分:2)

如果您尝试对数组进行排序,保持键的顺序与值相同,则PHP asort()函数会执行此操作。

如果您想保留原始数组但按顺序获取密钥,则可以使用以下内容:

$arr = array(13,4,7,1,16);
asort($arr);
$keys = array_keys($arr);

然后$ keys将原始数组中的键按原始值的顺序排序,例如: $ keys = array(4,2,3,1,5);

答案 1 :(得分:1)

如果要参考排序值

获取数组的索引

试试这个

 $numbers = array(13,4,7,1,16);
$numberscopy = $numbers;
sort($numberscopy);
$final = array();
//echo array_search(13, $numbers);
for($a=0 ; $a<count($numberscopy );$a++){

$final[] = array_search($numberscopy[$a], $numbers) + 1;
}
var_dump($final);