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

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

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

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

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

PHP: sort - Manual

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

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

<?php
$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関数はキーの降順で、配列を並べ替える関数となります。

<?php
$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で返信

コメントは、以下の項目(*は必須項目)を入力し「コメントを送信」ボタンから送信お願いします。メールアドレスは公開されることはありません。Twitterで返信する場合はコチラから。