PHPでasort(),arsort()関数を使用し連想配列を昇順・降順で並び替えてみます。
asort()関数を使用することで、値に従い連想配列の要素を昇順で並べ替えることができます。sort()関数と同じように機能しますが、キーと値の間の関連付けを保持します。
一方、arsort()関数を使用することで、値に従い連想配列の要素を降順で並べ替えることができます。arsort()関数と同じように機能しますが、キーと値の間の関連付けを保持します。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■asort()関数を使用し連想配列の要素を昇順で並べ替える
では、早速asort()関数を使用し連想配列の要素を昇順で並べ替えてみます。
■コード
<?php
$name_age = array("田中"=>1,"佐藤"=>99,"山田"=>66,"松本"=>44,"藤岡"=>10);
asort($name_age);
print_r($name_age);
?>
今回はname_ageという変数を定義し、その中にarray()を使用し連想配列を作成し、キーと値を入れます。今回はキーは文字列で値は数値となっています。
入れた後にasort()関数を使用することで、連想配列のキーと値のセットを昇順で並べ替えます。
並び替えた後にname_ageという変数の情報をprint_r()関数で解りやすく出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
Array (
[田中] => 1
[藤岡] => 10
[松本] => 44
[山田] => 66
[佐藤] => 99
)
実行してみると、name_ageという変数の中の情報を出力することができました。出力した情報を確認すると、連想配列のキーと値のセットの「値」がasort()関数を使用したことにより、値が昇順で並び替わっていることがわかります。
■日本語の場合
ここで実験してみます。連想配列のキーと値の値に、日本語を1文字ずつ入れて、asort()関数を使用すると、どうなるのでしょうか。
■コード
<?php
$name_age = array("田中"=>"い","佐藤"=>"う","山田"=>"え","松本"=>"あ","藤岡"=>"お");
asort($name_age);
print_r($name_age);
?>
変数の中の連想配列の値には、「あいうえお」をバラバラに入れています。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
Array ( [松本] => あ [田中] => い [佐藤] => う [山田] => え [藤岡] => お )
実行させてみると、変数の中の連想配列の値が、あいうえお順に並び替えられて出力されることが確認できました。
■arsort()関数を使用し連想配列の要素を降順で並び替える
では、次にarsort()関数を使用し連想配列の要素を降順で並び替えてみます。
■コード
<?php
$name_age = array("田中"=>1,"佐藤"=>20,"山田"=>33,"松本"=>56,"藤岡"=>82);
arsort($name_age);
print_r($name_age);
?>
先ほど同じようにname_ageという変数を定義し、その中にarray()を使用し連想配列を作成し、キーと値を入れます。今回もキーは文字列で値は数値となっています。
入れた後にarsort()関数を使用することで、連想配列のキーと値のセットを降順で並べ替えます。
並び替えた後にname_ageという変数の情報をprint_r()関数で解りやすく出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
Array (
[藤岡] => 82
[松本] => 56
[山田] => 33
[佐藤] => 20
[田中] => 1
)
実行してみると、name_ageという変数の中の情報を出力することができました。出力した情報を確認すると、連想配列のキーと値は昇順だったですが、arsort()関数を使用したことにより、降順で並び替わっていることがわかります。
■日本語の場合
ここで実験してみます。連想配列のキーと値の値に、日本語を1文字ずつ入れて、arsort()関数を使用すると、どうなるのでしょうか。
■コード
<?php
$name_age = array("田中"=>"い","佐藤"=>"う","山田"=>"え","松本"=>"あ","藤岡"=>"お");
arsort($name_age);
print_r($name_age);
?>
先ほどの実験と同じように、変数の中の連想配列の値には、「あいうえお」をバラバラに入れています。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
Array ( [藤岡] => お [山田] => え [佐藤] => う [田中] => い [松本] => あ )
実行させてみると、変数の中の連想配列の値が、あいうえお順の”逆”に並び替えられて出力されることが確認できました。
コメント