Krsortは、キー(キー(大部分から小さいまでキー)で並べ替えを逆転させるために使用されます。キー価値のペア間の相関を変更せずに保持し、キーでソートする必要があるシナリオに適しています。
$arr = ['a' => 3, 'b' => 1, 'c' => 2];
krsort($arr);
print_r($arr);
出力の結果は次のとおりです。
Array
(
[c] => 2
[b] => 1
[a] => 3
)
array_flipは、配列のキーと値を交換するために使用されます。元の配列の値は新しい配列のキーになり、キーが値になります。これは、価値でソートする必要がある場合、またはマッピング関係を逆にする必要がある場合に役立ちます。
$arr = ['a' => 3, 'b' => 1, 'c' => 2];
$flipped = array_flip($arr);
print_r($flipped);
出力結果:
Array
(
[3] => a
[1] => b
[2] => c
)
配列の値に基づいて逆方向に並べ替えて、元の配列のキーと値のマッピングを維持する必要がある場合は、 array_flipとkrsortを組み合わせることができます。
array_flipを使用して値をキーに変換して、値によるソートを容易にします。
Krsortを使用して、反転した配列を逆順にソートします(つまり、元の配列値の逆の順序)。
最後に、 array_flipをもう一度使用してキーと値を復元して、配列を逆順にソートします。
サンプルコード:
<?php
// オリジナル配列
$arr = ['apple' => 5, 'banana' => 3, 'orange' => 8, 'grape' => 2];
// 最初のステップ:配列をフリップします,値が重要になります
$flipped = array_flip($arr);
// ステップ2:キーによって(つまり、元の配列の値です)逆の順序で並べ替えます
krsort($flipped);
// ステップ3:反転して再び復元します,得到逆の順序で並べ替えます后的数组
$sorted = array_flip($flipped);
print_r($sorted);
出力結果:
Array
(
[orange] => 8
[apple] => 5
[banana] => 3
[grape] => 2
)
array_flipでは、配列の値が一意であり、キー(通常は文字列または整数)として使用できる必要があります。そうしないと、データの損失を引き起こします。
この方法は、値でソートされたシナリオに適しており、値はキーとして一意で適しています。
値が一意でない場合、 array_flipを使用すると重複キーを上書きし、不正確なソート結果が得られます。
array_flipとkrsortを組み合わせることにより、配列値に従って逆順序のソートを簡単に実装し、元の配列のキー価値の対応を維持できます。この方法はシンプルで効率的で、一意の値を持つシナリオに適しており、PHPアレイをソートするための実用的な手法の1つです。
詳細については、<code> https://gitbox.net/php-tutorials </code>をご覧ください。