【ソート配列】PHPでasort(),arsort()関数を使用し連想配列を昇順・降順で並び替える

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 (
[藤岡] => お
[山田] => え
[佐藤] => う
[田中] => い
[松本] => あ
)

実行させてみると、変数の中の連想配列の値が、あいうえお順の”逆”に並び替えられて出力されることが確認できました。

コメント

タイトルとURLをコピーしました