AutoIncrement(重新排序)php Array值

时间:2012-12-19 11:54:18

标签: php

有没有办法重新排序数组中的值?例如,我有

 Array (
    "one" => 0,
     "tow" => 0,
     "three" => 0,
     "four" => 8,
     "apple" => 4,
     "pink" => 3,
   );

并将其转换为

 Array (
    "one" => 0,
     "tow" => 1,
     "three" => 2,
     "pink" => 3,
     "apple" => 4,
     "four" => 5,
   );

编辑:

请注意“四个”有更大的值它应该变为5和“apple”& “粉红色”不应该改变

3 个答案:

答案 0 :(得分:6)

如此简单......

$source  = array('one' => 0, 'tow' => 0, 'three' => 0, 'four' => 8, 'apple' => 4, 'pink' => 3);
asort($source);
$result  = array_flip(array_keys($source));

说明:array_keys会将原始数组的所有键收集为另一个索引数组,而array_flip只会将这些索引转换为值。 )

答案 1 :(得分:1)

$i = 0;
foreach( $array as $key => $value )
{
    $array[$key] = $i;
    $i++
}

应该这样做: - )

答案 2 :(得分:0)

您可能正在寻找PHP asort()