ホームページ >バックエンド開発 >PHPの問題 >PHPで2D配列のk値を置き換える方法

PHPで2D配列のk値を置き換える方法

PHPz
PHPzオリジナル
2023-04-19 10:06:53623ブラウズ

PHP は広く使用されているプログラミング言語です。学習が簡単で、柔軟性があり、効率的で、オープンソースであるため、多くの企業や開発者にとって選ばれる言語となっています。 PHP では、2 次元配列も最も一般的なデータ構造の 1 つであり、大量のデータを保存し、高速なデータ クエリと走査を実行できます。この記事では、PHP で 2 次元配列の k 値を置き換える方法に焦点を当てます。

2 次元配列

PHP では、配列は非常に重要なデータ型です。配列は 1 つの変数名で複数の値を格納でき、これらの値は文字列、整数、オブジェクトなどの異なるデータ型にすることができます。

PHP の配列は、1 次元配列と多次元配列に分類されます。このうち多次元配列は、2次元配列、3次元配列、4次元配列などに分類されます。 2 次元配列とは、複数の 1 次元配列を含む配列を指します。

2 次元配列を定義するサンプル コードは次のとおりです。

$students = array(
   array("name"=>"张三", "age"=>18, "score"=>85),
   array("name"=>"李四", "age"=>19, "score"=>90),
   array("name"=>"王五", "age"=>20, "score"=>75)
);

上記のコードは、3 つの 1 次元配列を含む $students という名前の 2 次元配列を定義します。各 1 次元配列には、生徒の名前、年齢、学年を表す 3 つの要素が含まれています。

2 次元配列内の k 値を置換する

場合によっては、2 次元配列内のいくつかの k 値を置換する必要があります。この目標を達成するには、PHP で提供される array_map 関数と array_column 関数を使用します。具体的な手順は次のとおりです。

最初の手順では、array_column 関数を使用して元の配列の列を取得し、新しい 1 次元配列を生成します。この列に対応する k 値が、置換する k 値です。

サンプル コードは次のとおりです。

$key_array = array_column($students, 'name');

このコードは、$students 配列内の各 1 次元配列の名前キー値を抽出して、新しい 1 次元配列 $key_array を形成します。

2 番目のステップは、array_map 関数を使用して新しい 1 次元配列を走査し、コールバック関数を通じて各要素の値を置き換えることです。コールバック関数では、各要素の値を新しい k 値として使用し、元の 2 次元配列からこの k 値に対応する 1 次元配列を見つけ、その k 値を新しい k 値に置き換えます。

サンプル コードは次のとおりです:

$new_key_array = array_map(function($val) use ($students) {
      foreach($students as &$student) {
         if($student['name'] == $val) {
            $student['new_name'] = $student['name'];
            unset($student['name']);
            return $student;
         }
      }  
}, $key_array);

このコードは、$key_array 配列を走査します。要素 $val ごとに、foreach ループを通じて元の配列 $students を走査し、$val を見つけます。元の配列。対応する 1 次元配列であり、その名前のキー値が新しいキー値 new_name に置き換えられます。最後に、1 次元配列内の元の名前キーを削除し、変更された 1 次元配列を返します。

3 番目のステップは、新しいアレイをチェックして、置換操作が有効になっているかどうかを確認することです。

最終コードは次のとおりです:

$students = array(
  array("name"=>"张三", "age"=>18, "score"=>85),
  array("name"=>"李四", "age"=>19, "score"=>90),
  array("name"=>"王五", "age"=>20, "score"=>75)
);

$key_array = array_column($students, 'name');

$new_key_array = array_map(function($val) use ($students) {
  foreach($students as &$student) {
     if($student['name'] == $val) {
        $student['new_name'] = $student['name'];
        unset($student['name']);
        return $student;
     }
  }  
}, $key_array);

print_r($students);

上記のコードを実行すると、次の出力が得られます:

Array
(
    [0] => Array
        (
            [age] => 18
            [score] => 85
            [new_name] => 张三
        )

    [1] => Array
        (
            [age] => 19
            [score] => 90
            [new_name] => 李四
        )

    [2] => Array
        (
            [age] => 20
            [score] => 75
            [new_name] => 王五
        )
)

出力からわかるように、正常に実行されました。元の名前キーが新しいキー new_name に置き換えられます。

概要

PHP では、2 次元配列内の k 値を置換することは比較的一般的な操作です。 array_map 関数と array_column 関数を使用すると、この操作を簡単に実装できます。実際の開発では、開発効率とコード品質を向上させるために、特定の状況に応じてこの操作を実装するための最適な方法を選択する必要があります。

以上がPHPで2D配列のk値を置き換える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。