PHP は、幅広い用途で人気のある非常に人気のある Web プログラミング言語です。配列は、PHP では非常に便利なデータ型です。 PHP には多くの種類の配列があり、その中で最も一般的に使用されるのは多次元配列です。多次元配列では、各配列要素は 2 次元、3 次元、またはそれ以上の次元の配列構造を形成する配列にすることができます。ただし、多次元配列を扱う場合、特定の要素を変更するのは少し難しい場合があります。この記事では、多次元配列の要素を変更する方法について説明します。
多次元配列の走査
多次元配列の要素を変更する方法を理解する前に、PHP で多次元配列を走査する方法を理解する必要があります。多次元配列を走査するには多くの方法がありますが、以下では最も一般的な 3 つの方法を紹介します。
方法 1: for ループを使用して走査する
for ループを使用すると、2 次元配列を簡単に走査できます。 3 次元、4 次元、またはそれ以上の次元の配列の場合、複数の for ループをネストする必要があります。以下に示すように:
$array = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ); for ($i = 0; $i < 3; $i++) { for ($j = 0; $j < 3; $j++) { echo $array[$i][$j] . " "; } echo "<br>"; }
出力結果は次のとおりです:
1 2 3 4 5 6 7 8 9
方法 2: foreach ループを使用して走査する
次に示すように、foreach ループを使用して任意の次元の配列を走査します。 :
$array = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ); foreach ($array as $value1) { foreach ($value1 as $value2) { echo $value2 . " "; } echo "<br>"; }
出力結果は次のとおりです:
1 2 3 4 5 6 7 8 9
方法 3: 再帰的走査を使用する
次に示すように、再帰的メソッドを使用して任意の次元の配列を走査します。
$array = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ); function traverse($array) { foreach ($array as $value) { if (is_array($value)) { traverse($value); } else { echo $value . " "; } } echo "<br>"; } traverse($array);
1 2 3 4 5 6 7 8 9
$array = array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ); $array[1][1] = 10; for ($i = 0; $i < 3; $i++) { for ($j = 0; $j < 3; $j++) { echo $array[$i][$j] . " "; } echo "<br>"; }
1 2 3 4 10 6 7 8 9
$array を使用します。 [ 1][1] = 10; 2 次元配列の要素を更新します。次に、for ループを使用して、要素が更新されたことを確認します。
$array = array( array( array(1, 2, 3), array(4, 5, 6), array(7, 8, 9) ), array( array(10, 11, 12), array(13, 14, 15), array(16, 17, 18) ) ); $array[1][1][1] = 20; function traverse($array) { foreach ($array as $value) { if (is_array($value)) { traverse($value); } else { echo $value . " "; } } echo "<br>"; } traverse($array);
1 2 3 4 5 6 7 8 9 10 11 12 13 20 15 16 17 18
$array[1][1][1] = 20; を使用します。 3 次元配列の要素。 3 次元配列を走査する場合は再帰が必要なので、
traverse 関数を使用して配列全体を走査します。
以上がPHPで多次元配列の要素を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。