PHPプログラミング

最終更新日:
公開日:

レシピ

配列

連想配列を値で並び替える

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

この記事のポイント

  • 連想配列の「値」を使って並び替えを行う
  • 昇順の並び替えはasort関数、降順はarsort関数を使う

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

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

PHP コード例

asort($array);

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

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

PHP コード例

<?php

// 配列を用意
$array = array(
	's1' => 'Shibaken',
	'p' => 'Pomeranian',
	'g1' => 'Golden retriever',
	'g2' => 'Greyhound',
	's2' => 'Siberian husky'
);

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

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

ソート後の配列の出力例

array(5) {
["g1"]=> string(16) "Golden retriever"
["g2"]=> string(9) "Greyhound"
["p"]=> string(10) "Pomeranian"
["s1"]=> string(8) "Shibaken"
["s2"]=> string(14) "Siberian husky"
}

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

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

PHP コード例

<?php

// 配列を用意
$array = array(
	's1' => 'Shibaken',
	'p' => 'Pomeranian',
	'g1' => 'Golden retriever',
	'g2' => 'Greyhound',
	's2' => 'Siberian husky'
);

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

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

ソート後の配列の出力例

array(5) {
["s2"]=> string(14) "Siberian husky"
["s1"]=> string(8) "Shibaken"
["p"]=> string(10) "Pomeranian"
["g2"]=> string(9) "Greyhound"
["g1"]=> string(16) "Golden retriever"
}

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