PHPでksort(),krsort()関数を使用し連想配列の要素をキーの昇順・降順で並び替えてみます。
ksort()関数を使用することで、連想配列の要素のキーを昇順で並べ替えることができます。
一方、krsort()関数を使用することで、連想配列の要素のキーを降順で並べ替えることができます。
なお、ksort(),krsort()関数ともに、並び替える際のキーとその値の間の関連付けは保持しています。
■環境
・Windows10
・WampServer Version 3.2.3 64bit
・PHP Version 7.3.21
■ksort()関数を使用し、連想配列の要素のキーを昇順で並べ替える
では、早速ksort()関数を使用し、連想配列の要素のキーを昇順で並べ替えてみます。
■コード
<?php
$name_test = array("A"=>"12","C"=>"23","D"=>"34","B"=>"45","E"=>"56");
ksort($name_test);
print_r($name_test);
?>
今回はname_testという変数を定義し、その中にarray()を使用し配列を作成し、要素を入れます。今回の要素は、キーがアルファベットで、アルファベット順ではなくバラバラに入れます。値が数値となっています。
入れた後に、ksort()関数を使用し、name_testという変数の中に格納した配列のキーを昇順で並び替えます。
並び替えた後のname_testという変数の情報をprint_r()関数で解りやすく出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
Array (
[A] => 12
[B] => 45
[C] => 23
[D] => 34
[E] => 56
)
実行してみると、name_testという変数の中の情報を出力することができました。出力した情報を確認すると、配列の中のキーにいれたバラバラのはずのアルファベットが、ksort()関数を使用したことにより、キーが昇順で並び替わっていることがわかります。
■日本語の場合
ここで実験してみます。配列のキーに”あいうえお”の1文字を入れた言葉を使うとどうなるのでしょうか。
■コード
<?php
$name_test = array("いいしごと"=>"15","あんこ"=>"27","うまい"=>"31","おいしい"=>"45","えがお"=>"58");
ksort($name_test);
print_r($name_test);
?>
変数の中の配列のキーには、”あいうえお”の1文字を入れた言葉をあいうえお順ではなくバラバラに入れてあります。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
Array ( [あんこ] => 27 [いいしごと] =>15 [うまい] => 31 [えがお] => 58 [おいしい] => 45 )
実行させてみると、変数の中の配列のキーが、あいうえお順(昇順)に並び替えられて出力されることが確認できました。
■krsort()関数を使用し、連想配列の要素のキーを降順で並べ替える
では、次にkrsort()関数を使用し連想配列の要素のキーを降順で並べ替えてみます。
■コード
<?php
$name_test = array("A"=>"12","C"=>"23","D"=>"34","B"=>"45","E"=>"56");
krsort($name_test);
print_r($name_test);
?>
先ほど同じようにname_testという変数を定義し、その中にarray()を使用し配列を作成し、要素を入れます。要素は、キーがアルファベットで、アルファベット順ではなくバラバラに入れます。値が数値となっています。これは変わりません。
しかし、今回は入れた後に、krsort()関数を使用し、name_testという変数の中に格納した配列のキーを降順で並び替えます。
並び替えた後のname_testという変数の情報をprint_r()関数で解りやすく出力してみます。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
Array (
[E] => 56
[D] => 34
[C] => 23
[B] => 45
[A] => 12
)
実行してみると、name_testという変数の中の情報を出力することができました。出力した情報を確認すると、配列のキーが、今度はkrsort()関数を使用したことにより、降順で並び替わっていることがわかります。
■日本語の場合
では最後に、先ほど実験してみます。配列のキーに”あいうえお”の1文字を入れた言葉を使うとどうなるのかやってみます。
■コード
<?php
$name_test = array("いいしごと"=>"15","あんこ"=>"27","うまい"=>"31","おいしい"=>"45","えがお"=>"58");
krsort($name_test);
print_r($name_test);
?>
コードは先ほど同じで、ksort()関数の使用から、krsort()関数の使用に変更しています。
■実行
では、このスクリプトを「hello.php」という名前で保存し、実行させてみます。
Array ( [おいしい] => 45 [えがお] => 58 [うまい] => 31 [いいしごと] => 15 [あんこ] => 27 )
実行させてみると、変数の中の配列のキーが、あいうえお順の逆(降順)に並び替えられて出力されることが確認できました。
コメント