PHPプログラミング

レシピ

配列

連想配列をキー(添字)で並び替える

ksort関数を使って、連想配列のキーを使って要素を並び替える方法について解説します。

この記事のポイント

  • 配列の「値」ではなく「キー」を使って並び替えを行う
  • 逆順に並び替えるときはkrsort関数を使う

連想配列のキーで要素を並び替える

ksort関数は渡した配列のキーを使って要素を並び替えます。

コード例

ksort($array);

実行すると引数で渡した変数に並び替えた後の配列が代入されます。
返り値は並び替えが成功したらtrue、失敗するとfalseになります。

なお、連想配列の「キー」ではなく「値」で並び替えたい場合はasort関数を使うことができます。
こちらの関数について詳しくは、「連想配列を値で並び替える」を参照ください。

コード例

<?php

// 配列を用意
$array = array(
	's1' => '柴犬',
	'p' => 'ポメラニアン',
	'g1' => 'ゴールデンレトリバー',
	'g2' => 'グレイハウンド',
	's2' => 'シベリアンハスキー'
);

// ソート実行
ksort($array);

// ソート後の配列を出力
var_dump($array);

ソート後の配列の出力例

array(5) {
["g1"]=> string(30) "ゴールデンレトリバー"
["g2"]=> string(21) "グレイハウンド"
["p"]=> string(18) "ポメラニアン"
["s1"]=> string(6) "柴犬"
["s2"]=> string(27) "シベリアンハスキー"
}

キーと値の関係は保たれた状態で並び替えられます。

並び順を降順(逆順)にしたい場合は、名前がよく似たkrsort関数を使います。
こちらの関数はksort関数と正反対の並び替えを行います。

コード例

<?php

// 配列を用意
$array = array(
	's1' => '柴犬',
	'p' => 'ポメラニアン',
	'g1' => 'ゴールデンレトリバー',
	'g2' => 'グレイハウンド',
	's2' => 'シベリアンハスキー'
);

// ソート実行
krsort($array);

// ソート後の配列を出力
var_dump($array);

ソート後の配列の出力例

array(5) {
["s2"]=> string(27) "シベリアンハスキー"
["s1"]=> string(6) "柴犬"
["p"]=> string(18) "ポメラニアン"
["g2"]=> string(21) "グレイハウンド"
["g1"]=> string(30) "ゴールデンレトリバー"
}

並び替えた後の配列を出力すると、ksort関数と正反対の並びになっていることが確認できました。

こちらの記事は役に立ちましたか?

ありがとうございます。
もしよろしければ、あわせてフィードバックや要望などをご入力ください。

コメントありがとうございます!
運営の参考にさせていただきます。