現在の位置: ホーム> 最新記事一覧> Arsort関数を使用して配列をソートし、アレイのキー名を変更しておくにはどうすればよいですか?詳細な分析

Arsort関数を使用して配列をソートし、アレイのキー名を変更しておくにはどうすればよいですか?詳細な分析

gitbox 2025-06-15

1。arsort ()関数の概要

Arsort()関数は、値によって下降順に配列をソートするために使用されます。配列の値だけでなく、元の配列のキー名も保持します。したがって、値が変更されたとしても、キー名は元の配列の位置と一致したままです。

関数プロトタイプ

bool arsort ( array &$array , int $sort_flags = SORT_REGULAR )
  • 配列&$配列:ソートする配列。

  • int $ sort_flags :オプションのパラメーターは、ソートルールを定義します。一般的な並べ替えルールには、 sort_regular (default)、 sort_numericsort_stringなどが含まれます。

返品値

ブール値を返します。ソートが成功した場合はtrueを返します。それ以外の場合はfalseを返します。


2。基本的な使用法

Arsort()関数を使用して配列を下降順序でソートし、キー名を変更しないようにする方法を示す簡単な例を以下に示します。

 <?php
$array = [
    "apple" => 5,
    "banana" => 2,
    "orange" => 8,
    "grape" => 1
];

arsort($array); // 下降をソートします

print_r($array);
?>

出力結果:

 Array
(
    [orange] => 8
    [apple] => 5
    [banana] => 2
    [grape] => 1
)

上記のように、 arsort()は値の下降順に配列を並べ替え、キー名( Appleバナナなど)は変更されていません。


3. Arsort()を使用するときにソートルールを指定する方法は?

arsort()は、 sort_flagsパラメーターを介してコレクションの指定をサポートしています。さまざまなソートメソッドを選択できます。最も一般的な方法は、 sort_numericsort_stringです。

例1:数値並べ替えにはsort_numericを使用します

<?php
$array = [
    "a" => 10,
    "b" => 1,
    "c" => 3
];

arsort($array, SORT_NUMERIC); // 番号でソートします

print_r($array);
?>

出力結果:

 Array
(
    [a] => 10
    [c] => 3
    [b] => 1
)

例2:文字列ソートにsort_stringを使用します

<?php
$array = [
    "apple" => "green",
    "banana" => "yellow",
    "orange" => "orange"
];

arsort($array, SORT_STRING); // 文字列でソートします

print_r($array);
?>

出力結果:

 Array
(
    [orange] => orange
    [banana] => yellow
    [apple] => green
)

4。arsort ()のアプリケーションシナリオ

シーン1:学生リストを成績で並べ替えます

学生の成績の配列があるとしますが、学年に基づいて生徒を降順で並べ替え、生徒の名前と成績を対応させたいと考えています。

 <?php
$students = [
    "John" => 85,
    "Jane" => 92,
    "Tom" => 76,
    "Lucy" => 89
];

arsort($students); // 根据成绩下降をソートします

print_r($students);
?>

出力結果:

 Array
(
    [Jane] => 92
    [Lucy] => 89
    [John] => 85
    [Tom] => 76
)

このアプローチは、特定の基準(グレード、スコアなど)に基づいてデータをソートする必要があるシナリオに非常に適しています。


5。一般的なエラーとデバッグ

  1. 参照配列が渡されません<br> 参照によって配列を渡さない場合、 Arsort()関数は元の配列を変更しません。

 <?php
$array = [
    "apple" => 5,
    "banana" => 2
];

arsort($array); // ここに引用符はありません,元の配列は変更されません

print_r($array); // 元の配列を出力します
?>

出力結果:

 Array
(
    [apple] => 5
    [banana] => 2
)

解決策は、参照によって配列を渡すことです。

 arsort($array); // 参照を使用して、配列を直接変更します
  1. sort_flagsパラメーターエラー<br> 場合によっては、間違ったsort_flagsパラメーターがソート結果を予想よりも悪化させます。たとえば、 SORT_STRINGでソートするときに要素に数値が含まれている場合、予期しないソート動作が発生する可能性があります。