PHP では、2 次元配列が一般的なデータ型です。これは複数の配列で構成され、それぞれに複数のキーと値を含めることができます。 2 次元配列内の要素の値を変更する必要がある場合、PHP が提供するいくつかの関数と構文を使用してこれを実現できます。この記事では、2 次元配列の値を変更する方法について説明します。
1. foreach ループを使用する
PHP では、2 次元配列を走査するために foreach ループを使用するのが非常に一般的です。要素の値を変更する必要がある場合は、foreach ループで参照渡しを使用できます。参照渡しとは、変数の値ではなく、変数のアドレスを渡すことを意味します。このように、ループ内の変数の値を変更した後、元の配列も変更されます。
たとえば、次の 2 次元配列があります:
$students = array( array('name' => 'Tom', 'age' => 18), array('name' => 'Jerry', 'age' => 20), array('name' => 'Lucy', 'age' => 22) );
トムの年齢を 18 から 19 に変更する必要があります。次のコードを使用できます:
foreach ($students as &$student) { if ($student['name'] == 'Tom') { $student['age'] = 19; } }
上記コードでは参照転送 &
を使用し、name
キーの値を判断してループ内で変更しています。
2. array_map 関数を使用する
foreach ループを使用することに加えて、PHP が提供する array_map 関数を使用して 2 次元配列の値を変更することもできます。 array_map 関数は、関数を引数として受け入れ、その関数を配列の各要素に適用できます。この関数は変更された要素を返すことができるため、元の配列の値が変更されます。
たとえば、次の 2 次元配列があります:
$prices = array( array('product' => 'pen', 'price' => 1.5), array('product' => 'pencil', 'price' => 0.5), array('product' => 'book', 'price' => 8) );
価格を 2 で乗算する必要がある場合は、次のコードを使用できます:
function double_price($item) { $item['price'] *= 2; return $item; } $prices = array_map("double_price", $prices);
上記のコードでは、入力要素の価格を 2 で乗算し、変更された要素を返す関数 double_price
を定義します。次に、array_map 関数を使用してこの関数を呼び出し、結果を元の配列に格納します。
3. array_walk_recursive 関数を使用する
多次元配列または部分配列を含む 2 次元配列の場合、PHP が提供する array_walk_recursive 関数を使用して値を変更できます。 array_map と同様に、array_walk_recursive も関数を引数として受け取り、その関数を配列の各要素に適用します。違いは、この関数が部分配列内の要素を含む配列の各要素に再帰的に適用されることです。
たとえば、次の多次元配列があります:
$marks = array( 'Tom' => array('Chinese' => 80, 'Math' => 90), 'Jerry' => array('Chinese' => 85, 'Math' => 95) );
ジェリーの数学のスコアを 95 から 100 に変更する必要がある場合は、次のコードを使用できます:
function update_jerry(&$value, $key) { if ($key == 'Jerry' && is_array($value) && isset($value['Math'])) { $value['Math'] = 100; } } array_walk_recursive($marks, 'update_jerry');
In上記 コードでは、input 要素の修飾値を 100 に変更する関数 update_jerry
を定義します。次に、array_walk_recursive 関数を使用してこの関数を呼び出し、結果を元の配列に格納します。
結論
PHP では、2 次元配列の値を変更する方法がたくさんあります。これを実現するには、foreach ループ、array_map 関数、または array_walk_recursive 関数を使用できます。さまざまな状況に適した方法があり、特定のニーズに応じて最適な方法を選択できます。どの方法を使用する場合でも、コードの読みやすさと保守性を確保するためにベスト プラクティスに従うことに注意を払う必要があります。
以上がPHPで2次元配列の値を変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。