演習課題「連想配列を並べ替えしてみよう1」
右側のエディターエリアのプログラムを元に、連想配列 $item の value を大きい順に並び替えて print_r で出力してみよう。
期待する出力値
Array
(
[バスタードソード] => 攻撃力:45
[ロングソード] => 攻撃力:34
[ショートソード] => 攻撃力:23
[ダガー] => 攻撃力:10
)
演習課題「連想配列を並べ替えしてみよう2」
右側のエディターエリアのプログラムを元に、連想配列 $rank の value を順位順(1位、2位、、)に並び替えて print_r で出力してみよう。
期待する出力値
Array
(
[スライム] => 1位
[はぐれ犬] => 2位
[ゴブリン] => 3位
[オオカミ] => 4位
)
演習課題「連想配列を並べ替えしてみよう3」
右側のエディターエリアのプログラムを元に、連想配列 $item の key を小さい順(ア、イ、ウ、・・・)に並び替えて print_r で出力してみよう。
期待する出力値
Array
(
[アースブレイカー] => 所持数:1
[イージスシールド] => 所持数:3
[ウインドスピア] => 所持数:1
[エビルソード] => 所持数:1
[オリハルコンブレード] => 所持数:2
)
演習課題「連想配列を並べ替えしてみよう4」
右側のエディターエリアのプログラムを元に、連想配列 $item の key を大きい順に並び替えて print_r で出力してみよう。
期待する出力値
Array
(
[オリハルコンブレード] => 所持数:2
[エビルソード] => 所持数:1
[ウインドスピア] => 所持数:1
[イージスシールド] => 所持数:3
[アースブレイカー] => 所持数:1
)
演習課題「データを取得して並べ替えて出力してみよう」
標準入力で複数行のデータが与えられます。なお、標準入力で与えられる行数は一定ではなく、次の条件で変動します。
1 <= 標準入力の行数 <= 5
各行のデータはカンマ区切りで [アイテム名、攻撃力] の形式となっているので、アイテム名を key に、攻撃力を value として連想配列に代入してください。
※ $item["ロングソード"] = "攻撃力:11" という状態。
その後、攻撃の大きい順に並び替えて print_r で出力するプログラムを作成してください。
標準入力から複数行データの取得するやり方は下記のチャプターで解説しています。
配列にデータを格納してみよう1
配列にデータを格納してみよう2
期待する出力値
Array
(
[バスタードソード] => 攻撃力:45
[ロングソード] => 攻撃力:34
[ショートソード] => 攻撃力:23
[ダガー] => 攻撃力:10
)
#04:連想配列の整列
このチャプターでは、連想配列のソート(整列)について学びます。asort, arsort, ksort, krsort について解説します。
sort(配列);
配列のvalueを小さい順(1,2,3,,や あ,い,う,, という順)に並び替えます。
連想配列に対して実行するとキーが失われるので注意。
asort(配列);
連想配列のvalueを小さい順(1,2,3,,や あ,い,う,, という順)に並び替えます。
arsort(配列);
連想配列のvalueを大きい順(3,2,1 や う,い,あ という順)に並び替えます。
ksort(配列);
連想配列のkeyを小さい順(1,2,3,,や あ,い,う,, という順)に並び替えます。
krsort(配列);
連想配列のkeyを大きい順(3,2,1 や う,い,あ という順)に並び替えます。
■ sort() 関数
配列をソートする
http://php.net/manual/ja/function.sort.php
■ asort() 関数
連想キーと要素との関係を維持しつつ配列をソートする
http://php.net/manual/ja/function.asort.php
■ arsort() 関数
連想キーと要素との関係を維持しつつ配列を逆順にソートする
http://php.net/manual/ja/function.arsort.php
■ ksort() 関数
配列をキーでソートする
http://php.net/manual/ja/function.ksort.php
■ krsort() 関数
配列をキーで逆順にソートする
http://php.net/manual/ja/function.krsort.php
■ print_r() 関数
指定した配列、変数に関する情報を解りやすく出力する。
http://php.net/manual/ja/function.print-r.php