【PHP】配列のソート(並べ替え)|ksort()・krsort()・asort()・arsort()

今回は、PHPで個人的によく使用する配列をソート(並べ替え・順序変更)する関数の例となります。

配列の要素を英数字でソート(並べ替え・順序変更)

以下は、キーと値の関係はそのままで、配列の要素を英数字でソートする関数の例です。

それぞれの関数の第1引数に、並べ替えたい配列を指定します。第2引数には、任意でソートの動作を修正するパラメータを指定できます。詳しくは、以下リンク先のsort関数のパラメータsort_flagsを参照してみてください。

PHP: sort - Manual

キーでソート|ksort()・krsort()

以下は、配列をキー順でソートする例となり、ksort関数はキーの昇順、krsort関数はキーの降順で、配列を並べ替える関数となります。

$animals = array(
    'panda02'  => 'Xiang Xiang',
    'panda01'  => 'Sing Sing',
    'monkey01' => 'Pankun',
    'monkey02' => 'Jiro'
);

// キーの昇順でソートする場合
ksort( $animals );
echo '<<キーの昇順でソート>><br>';
foreach( $animals as $key => $value ){
	echo $key . 'は' . $value . 'です。<br>';
}

// キーの降順でソートする場合
krsort( $animals );
echo '<<キーの降順でソート>><br>';
foreach( $animals as $key => $value ){
	echo $key . 'は' . $value . 'です。<br>';
}

以下は出力結果となります。

<<キーの昇順でソート>>
monkey01はPankunです。
monkey02はJiroです。
panda01はSing Singです。
panda02はXiang Xiangです。
<<キーの降順でソート>>
panda02はXiang Xiangです。
panda01はSing Singです。
monkey02はJiroです。
monkey01はPankunです。

値でソート|asort()・arsort()

以下は、配列を値の順でソートする例となり、asort関数はキーの昇順、arsort関数はキーの降順で、配列を並べ替える関数となります。

$animals = array(
    'panda02'  => 'Xiang Xiang',
    'panda01'  => 'Sing Sing',
    'monkey01' => 'Pankun',
    'monkey02' => 'Jiro'
);

// 値の昇順でソートする場合
asort( $animals );
echo '<<値の昇順でソート>><br>';
foreach( $animals as $key => $value ){
	echo $value . 'は' . $key . 'です。<br>';
}

// 値の降順でソートする場合
arsort( $animals );
echo '<<値の降順でソート>><br>';
foreach( $animals as $key => $value ){
	echo $value . 'は' . $key . 'です。<br>';
}

以下は出力結果となります。

<<値の昇順でソート>>
Jiroはmonkey02です。
Pankunはmonkey01です。
Sing Singはpanda01です。
Xiang Xiangはpanda02です。
<<値の降順でソート>>
Xiang Xiangはpanda02です。
Sing Singはpanda01です。
Pankunはmonkey01です。
Jiroはmonkey02です。

その他の配列をソートする関数

今回紹介した関数以外にも、配列をソートする関数はたくさんあります。詳しくは参考サイトを確認してみてください。

参考サイトなど

コメント投稿コメント投稿欄を開く

コメントは項目欄(*は必須項目)を入力し、「コメントを送信」ボタンをクリックしてください。 (メールアドレスは公開されることはありません。コメントの公開は承認制となります。)

また、多忙によりコメントには返信できない場合があります。

Twitterで返信する場合はこちらから。