1

配列内の値を並べ替える方法はありますか? たとえば、私は持っています

 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,
   );

編集:

「4」は値が大きく、5 に変更し、「apple」と「pink」は変更しないことに注意してください。

4

3 に答える 3

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

于 2012-12-19T11:57:07.337 に答える
1
$i = 0;
foreach( $array as $key => $value )
{
    $array[$key] = $i;
    $i++
}

やるべきです:-)

于 2012-12-19T11:56:47.977 に答える
0

あなたはおそらくPHP asort()を探しています。

于 2012-12-19T11:57:54.033 に答える