Php 从排序数组中重新运行键的顺序
我在PHP中有这样一个数组Php 从排序数组中重新运行键的顺序,php,arrays,sorting,Php,Arrays,Sorting,我在PHP中有这样一个数组 $somevar = array(1, 5, 2, 7, 17, 2, 13); 我想对数组进行排序,但不移动值,因此我得到另一个具有索引/键顺序的数组 因此,我的新阵列将类似于 {0, 2, 5, 1, 3, 6, 4} 键的顺序是什么?这应该适合您: <?php $somevar = array(1, 5, 2, 7, 17, 2, 13); $newArray = array_values($somevar); asort($
$somevar = array(1, 5, 2, 7, 17, 2, 13);
我想对数组进行排序,但不移动值,因此我得到另一个具有索引/键顺序的数组
因此,我的新阵列将类似于
{0, 2, 5, 1, 3, 6, 4}
键的顺序是什么?这应该适合您:
<?php
$somevar = array(1, 5, 2, 7, 17, 2, 13);
$newArray = array_values($somevar);
asort($newArray);
$newArray = array_keys($newArray);
print_r($newArray);
?>
试试这个..
$somevar = array(1, 5, 2, 7, 17, 2, 13);
print_r($somevar);
//your array
Array ( [0] => 1 [1] => 5 [2] => 2 [3] => 7 [4] => 17 [5] => 2 [6] => 13 )
asort($somevar);
print_r($somevar);
//After sort
Array ( [0] => 1 [2] => 2 [5] => 2 [1] => 5 [3] => 7 [6] => 13 [4] => 17 )
print_r(array_keys($somevar));
//array key sorted array
Array ( [0] => 0 [1] => 2 [2] => 5 [3] => 1 [4] => 3 [5] => 6 [6] => 4 )
是的,我已经看过了,我也看过PHP排序函数,但是找不到任何东西,但是没有移动OP周围的值。我不想更改原始数组@我只是做了一些解释
$somevar = array(1, 5, 2, 7, 17, 2, 13);
print_r($somevar);
//your array
Array ( [0] => 1 [1] => 5 [2] => 2 [3] => 7 [4] => 17 [5] => 2 [6] => 13 )
asort($somevar);
print_r($somevar);
//After sort
Array ( [0] => 1 [2] => 2 [5] => 2 [1] => 5 [3] => 7 [6] => 13 [4] => 17 )
print_r(array_keys($somevar));
//array key sorted array
Array ( [0] => 0 [1] => 2 [2] => 5 [3] => 1 [4] => 3 [5] => 6 [6] => 4 )