ホームページ > バックエンド開発 > PHPの問題 > PHPで2次元配列の値を変更する方法

PHPで2次元配列の値を変更する方法

PHPz
リリース: 2023-04-17 15:56:53
オリジナル
1062 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート