Menu
Coddy logo textTech

Modifying Elements by Index

CoddyのPHPジャーニー「基礎」セクションの一部。レッスン 37/71。

インデックスを使って配列の要素にアクセスする方法を学びました。今度はそれらの要素を変更する方法を見てみましょう。配列要素の変更には、同じ角括弧構文を使用しますが、代入を伴います。

<?php
$fruits = ["Apple", "Banana", "Cherry"];

$fruits[1] = "Blueberry";

echo $fruits[1]; // ブルーベリー
?>

ここでは、インデックス 1 の "Banana" を "Blueberry" に置き換えました。元の値は失われます。配列は変更の履歴を保持しません。

インデックスさえ分かっていれば、どの要素でも変更できます:

<?php
$scores = [85, 90, 78];

$scores[0] = 95;  // 最初のスコアを更新
$scores[2] = 82;  // 最後のスコアを更新

echo $scores[0]; // 95
echo $scores[2]; // 82
?>

これは、タイポの修正、価格の更新、ユーザーのステータスの変更など、リスト内のデータを更新する必要がある場合に便利です。インデックスによってPHPに対して置換する正確な `element` が指示され、他のすべての要素は変更されずにそのまま残ります。

challenge icon

チャレンジ

簡単

カンマ区切りの値(例: Red,Green,Blue,Yellow)を含む色のリストを表す1行の入力を読み込みます。

続いて、さらに3つの入力を読み込みます:

  • 変更する最初のインデックスを表す整数 index1
  • そのインデックスの新しい値を表す文字列 newValue1
  • 変更する2番目のインデックスを表す整数 index2

カンマ区切りの入力から配列を作成し、以下の操作を行います:

  1. index1 の位置にある elementnewValue1 に変更する
  2. index2 の位置にある elementPurple に変更する

変更された配列の各 element を、インデックス 0 から最後のインデックスまで順番に改行して出力します。

例:

入力が Red,Green,Blue,Yellow0Orange2 の場合、出力は次のようになります:

Orange
Green
Purple
Yellow

入力が Apple,Banana,Cherry,Mango,Kiwi1Grape4 の場合、出力は次のようになります:

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";
}
?>
quiz icon腕試し

このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。

基礎のすべてのレッスン

自分で練習してみよう: PHPオンラインコンパイラ