Modifying Elements by Index
CoddyのPHPジャーニー「基礎」セクションの一部 — レッスン 37/71。
配列の要素をインデックスでアクセスする方法を学びました。今度は、それらの要素を変更する方法を見てみましょう。配列の要素を変更するには、同じ角括弧構文を使用しますが、代入を含みます。
<?php
$fruits = ["Apple", "Banana", "Cherry"];
$fruits[1] = "Blueberry";
echo $fruits[1]; // Blueberry
?>ここで、インデックス 1 の "Banana" を "Blueberry" に置き換えました。元の値は消えました—配列は変更の履歴を保持しません。
インデックスがわかっていれば、任意の要素を変更できます:
<?php
$scores = [85, 90, 78];
$scores[0] = 95; // Update first score
$scores[2] = 82; // Update last score
echo $scores[0]; // 95
echo $scores[2]; // 82
?>リスト内のデータを更新する必要がある場合に便利です—例えば、タイポの修正、価格の更新、ユーザーのステータスの変更などです。インデックスは PHP に正確にどの要素を置き換えるかを伝え、他のすべての要素はそのままにしておきます。
チャレンジ
簡単カンマで区切られた値を含む1行の入力を読み込み、カラーのリストを表します(例: 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
$fruits = ["Apple", "Banana", "Cherry"];
$fruits[1] = "Blueberry"; // Changes "Banana" to "Blueberry"
echo $fruits[1]; // Blueberry
?>異なるインデックスを指定することで、複数の要素を変更できます:
<?php
$scores = [85, 90, 78];
$scores[0] = 95; // Update first element
$scores[2] = 82; // Update last element
?>元の値は置き換えられ、保持されません。配列の他の要素は変更されません。
自分で試してみよう
<?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 の要素を "Purple" に変更する
// 各要素を別々の行に出力する
foreach ($colors as $color) {
echo $color . "\n";
}
?>このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。
基礎のすべてのレッスン
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators6Arrays Part 1 - Indexed
Introduction to ArraysCreating Indexed ArraysAccessing Elements by IndexModifying Elements by IndexArray Size with CountAdding Elements to an ArrayRecap - Managing a Simple List