インデックスによる要素の変更
CoddyのPHPジャーニー「基礎」セクションの一部。レッスン 37/71。
配列の要素にインデックスでアクセスする方法を学びました。次に、それらの要素を変更する方法を見てみましょう。配列の要素を変更するには、同じ角括弧構文を使いますが、代入を行います。
<?php
$fruits = ["Apple", "Banana", "Cherry"];
$fruits[1] = "Blueberry";
echo $fruits[1]; // Blueberry
?>ここでは、インデックス 1 の「Banana」を「Blueberry」に置き換えました。元の値は失われています。配列は変更の履歴を保持しません。
そのインデックスがわかっていれば、任意の element を変更できます。
<?php
$scores = [85, 90, 78];
$scores[0] = 95; // 最初のスコアを更新
$scores[2] = 82; // 最後のスコアを更新
echo $scores[0]; // 95
echo $scores[2]; // 82
?>これは、タイプミスの修正、価格の更新、ユーザーのステータスの変更など、リスト内のdataを更新する必要がある場合に便利です。インデックスによって、PHPは置き換える対象のelementを正確に特定できるため、他のすべてのelementはそのまま維持されます。
チャレンジ
簡単コンマ区切りの値で構成された色のリストを含む入力行を読み取ります(例: Red,Green,Blue,Yellow)。
次に、さらに3つの入力を読み取ります:
- 変更する最初のインデックスを表す整数
index1 - そのインデックスの新しい値を表す文字列
newValue1 - 変更する2番目のインデックスを表す整数
index2
コンマ区切りの入力から配列を作成し、次の操作を行います:
index1の要素をnewValue1に変更しますindex2の要素をPurpleに変更します
変更後の配列の要素を、インデックス0から最後のインデックスまで順番に、別々の行に出力します。
例:
入力が Red,Green,Blue,Yellow、0、Orange、2 の場合、出力は次のようになります:
Orange
Green
Purple
Yellow入力が Apple,Banana,Cherry,Mango,Kiwi、1、Grape、4 の場合、出力は次のようになります:
Apple
Grape
Cherry
Mango
Purple自分で試してみよう
<?php
// カンマ区切りの色を読み取る
$colorsInput = trim(fgets(STDIN));
$colors = explode(',', $colorsInput);
// 変更用の入力を読み取る
$index1 = intval(trim(fgets(STDIN)));
$newValue1 = trim(fgets(STDIN));
$index2 = intval(trim(fgets(STDIN)));
// TODO: ここにコードを書いてください
// 1. index1 の要素を newValue1 に変更する
// 2. index2 の要素を指示の正確なテキストに変更する
// 各要素を別々の行に出力する
foreach ($colors as $color) {
echo $color . "\n";
}
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
6配列 パート1 - インデックス付き
配列の概要インデックス付き配列の作成インデックスによる要素へのアクセスインデックスによる要素の変更Countによる配列サイズ配列への要素の追加復習 - シンプルなリストの管理自分で練習してみよう: PHPオンラインコンパイラ