連想配列の基本操作

$配列名 = array(キー名1 => 要素1, キー名2 => 要素2, キー名3 => 要素3…);
連想配列に代入したい用はカンマ区切りで連ねる事で複数代入できます。

$item = arrray(“ロングソード” => 2, “鉄の盾” =>1);

$item[“クリスタル”] =6; //←追加できる

unset($item[“鉄の盾”]); //←削除できる

print_r($item);

下記のアイテム名をkeyに、所持数を数値としてvalueに代入した連想配列を
作成し、print_rで内容を出力してください。

■連想配列代入する値
ショートソードを12個
銅の盾を4個
布の服を7個

// ■連想配列代入する値
// ショートソードを12個
// 銅の盾を4個
// 布の服を7個
$item = array(
“ショートソード” => 12,
“銅の盾” => 4,
“布の服”=> 7
);
print_r($item);

右側のエディターエリアのプログラムを元に、連想配列 $team の key が「木こり」の value を「木を切る職業」で上書きして、print_r で $team の内容を出力してみよう。

// 標準入力を3行取得
for($i=0 ; $i<3 ; $i++){
$input = trim(fgets(STDIN));
// 入力値を/で分割
$key_value =explode(“/”, $input);
// 手前の要素をkeyとして、後の要素をvalueとして連想配列に代入
$key = $key_value[0];
$value = $key_value[1];
$team[$key] = $value;

}
// ここから下に記述 
// $team のkeyが「木こり」のvalueを「木を切る職業」で上書きして、
//print_rで $team の内容を出力してみよう。
$team[“木こり”] = “木を切る職業”;
print_r($team);

配列の整列

sort(配列);
配列のvalueを小さい順(1,2,3,,や あ,い,う,, という順)に並び替えます。

rsort(配列);
配列のvalueを大きい順(3,2,1 や う,い,あ という順)に並び替えます。

標準入力で 1 行の csv 形式データ(カンマ区切り)が与えられます。
カンマ[,] で分割して攻撃力が高い順に並び替えて print_r で出力してください。

$input = trim(fgets(STDIN));
$item = explode(“,”, $input);
rsort($item);
print_r($item);

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 や う,い,あ という順)に並び替えます。

右側のエディターエリアのプログラムを元に、連想配列 $item の value を大きい順に並び替えて print_r で出力してみよう。

$item = array(
“ショートソード” => “攻撃力:23”,
“バスタードソード” => “攻撃力:45”,
“ロングソード” => “攻撃力:34”,
“ダガー” => “攻撃力:10”
);
// $itemのvalueを大きい順に並べ替えて
// print_rで出力しましょう
arsort($item);
print_r($item);

標準入力で複数行のデータが与えられます。
各行のデータはカンマ区切りで [アイテム名、攻撃力] の形式となっているので、アイテム名を key に、攻撃力を value として連想配列に代入してください。
※$item[“ロングソード”] = “攻撃力:11” という状態。

その後、攻撃の大きい順に並び替えて print_r で出力するプログラムを作成してください。

// 標準入力から全行のデータを取得
while($input = fgets(STDIN)){
// 改行等を取り除きカラムで分割
$key_value = explode(“,”, trim($input));
$key = $key_value[0];
$value = $key_value[1];
// 最初の要素をkeyに、後ろの要素をvalueとして代入
$item[$key] = $value;
}
// valueを大きい順に並べ替え
arsort($item);
print_r($item);

あわせて読みたい

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です