请原谅我的头衔,因为我不知道如何解释。
基本上,我的阵列最多可以有40个键(所有这些键都是1-40的唯一值)。
所有钥匙都需要保持其位置。但是这些值需要从“1”重新编号为“数组中键的总数”,但保留其相对位置。)
这个数组:
$a = array(1,5,16,7,4)
将转换为新的数组:
$b = array(1,3,5,4,2)
*相对 - 如你所见,16变为5,但仍然是数组中最高的数字,7变为4,依此类推。
这一直让我疯狂。我使用了while循环和各种各样的东西,而我却无法让它工作。
答案 0 :(得分:0)
$a = array(1,5,16,7,4);
$b = $a;
sort($a, SORT_NUMERIC);
foreach($b as $kb => $vb){
foreach($a as $ka => $va){
if($vb === $va)
$c[] = $ka+1;
}
}
//$c will contain the result you are asking
print_r($c);