我有一个这样的数组:
array(13,4,7,1,16);
我想重新计算数组,但我想保留序列,如下所示:
array(4,2,3,1,5);
我该怎么做?
答案 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);