現在の位置: ホーム> 最新記事一覧> PHPソートにおけるRSORTとASORTの違いは何ですか?どのシナリオがそれぞれに適していますか?

PHPソートにおけるRSORTとASORTの違いは何ですか?どのシナリオがそれぞれに適していますか?

gitbox 2025-07-01
<span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// このコードは、記事の内容とは何の関係もありません,分離するだけです</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">str_repeat</span></span><span>(</span><span><span class="hljs-string">"-"</span></span><span>, </span><span><span class="hljs-number">50</span></span><span>) . </span><span><span class="hljs-string">"\n"</span></span><span>;
</span><span><span class="hljs-meta">?&gt;</span></span><span>

rsort そして asort 存在する PHP ソートの違いは何ですか?それぞれに適したシナリオ?

存在する PHP 真ん中,配列ソートは非常に一般的な操作です,そして rsort そして asort 一般的に使用される2つのソート関数です。それらはすべて配列をソートするために使用されますが,但存在する排序方式そして排序结果的保留上有明显的区别。

</span><span><span class="hljs-number">1</span></span><span>. rsort — 逆の順序で並べ替えます(下降をソートします)

</span><span><span class="hljs-title function_ invoke__">rsort</span></span><span>() 函数将数组按照值进行下降をソートします(大部分から小さい),配列のインデックスをリセットします,インデックスは再割り当てされます </span><span><span class="hljs-number">0</span></span><span> 最初の連続数。

サンプルコード:
```php
</span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">rsort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span></span>

出力結果:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">0</span></span><span>] =&gt; </span><span><span class="hljs-number">4</span></span><span>
    [</span><span><span class="hljs-meta">1</span></span><span>] =&gt; </span><span><span class="hljs-number">3</span></span><span>
    [</span><span><span class="hljs-meta">2</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-meta">3</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
)
</span></span>

配列の元のキーが破棄され、配列がインデックス付き配列になることに注意してください。

該当するシナリオ:

  • 配列要素の値のソートのみを気にし、キー名を保持する必要はありません。

  • たとえば、ランキング、スコアなどを表示するために、降順で番号リストを配置します。

  1. ASORT - 価値でソートし、キー名を関連付けます

ASORT()関数は、値(小さいから大規模)で昇順にソートされますが、配列のキー名は変更されていません。つまり、並べ替え後の配列のキー価値ペア関係はまだ存在します。

サンプルコード:

 <span><span><span class="hljs-variable">$arr</span></span><span> = [</span><span><span class="hljs-string">'a'</span></span><span> =&gt; </span><span><span class="hljs-number">3</span></span><span>, </span><span><span class="hljs-string">'b'</span></span><span> =&gt; </span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-string">'c'</span></span><span> =&gt; </span><span><span class="hljs-number">4</span></span><span>, </span><span><span class="hljs-string">'d'</span></span><span> =&gt; </span><span><span class="hljs-number">2</span></span><span>];
</span><span><span class="hljs-title function_ invoke__">asort</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$arr</span></span><span>);
</span></span>

出力結果:

 <span><span>Array
(
    [</span><span><span class="hljs-meta">b</span></span><span>] =&gt; </span><span><span class="hljs-number">1</span></span><span>
    [</span><span><span class="hljs-meta">d</span></span><span>] =&gt; </span><span><span class="hljs-number">2</span></span><span>
    [</span><span><span class="hljs-meta">a</span></span><span>] =&gt; </span><span><span class="hljs-number">3</span></span><span>
    [</span><span><span class="hljs-meta">c</span></span><span>] =&gt; </span><span><span class="hljs-number">4</span></span><span>
)
</span></span>

該当するシナリオ:

  • キー名を価値でソートして保持する必要があるシナリオ。

  • たとえば、製品価格で並べ替えますが、製品の識別IDを保持する必要があります。

  • キーを介した対応する値への後続のアクセスを容易にするために、連想配列のソートに使用されます。

概要比較:

関数方向をソートしますキー名を保持するかどうか適切なシナリオ
rsort降順予約されていません値を並べ替えるだけで、キー名はランキングリストなど、無関係です
asort昇順予約されたキー名連想配列ソートなどのキー価値の関連付けを維持します

さらに、PHPには、下降順序を並べ替えてキー名を維持するためのArsortもあり、ソートは昇順であるが、キー名を維持しないために使用されます。さまざまなニーズに応じて、適切なソート関数を選択すると、コードがより簡潔で効率的になります。

RSORTとASORTの違いを理解することにより、配列の並べ替えをよりよく処理し、データの混乱を避け、プログラムの信頼性と読みやすさを向上させることができます。

<?php //終了部分は、記事の内容に関連していませんstr_repeat( " - "、50)。 "\ n"; ?>
 <span></span>