ホームページ >バックエンド開発 >PHPの問題 >PHP で 2 次元配列を指定されたキー値に変換する方法

PHP で 2 次元配列を指定されたキー値に変換する方法

PHPz
PHPzオリジナル
2023-04-27 09:03:58945ブラウズ

PHP の 2 次元配列は、大量のデータを保存するために使用できる非常に一般的なデータ構造であり、非常に柔軟性があります。通常、2 次元配列を処理するときは、特定の条件に基づいて特定の要素を除外するか、これらの要素の構造を再編成する必要があります。この場合、2D 配列を別の形式に変換すると非常に便利です。この記事では、PHPのarray関数を使って2次元配列を指定したキー値の形式に変換する方法を紹介します。

1. 2 次元配列とは

2 次元配列は、複数の 1 次元配列で構成されるデータ構造です。これは、各行が 1 次元配列を表し、列が 1 次元配列の要素を表すテーブルとして考えることができます。

たとえば、次のコードは 2 次元配列を作成します:

$data = array(
    array("name" => "Tom", "age" => 20),
    array("name" => "Jerry", "age" => 18)
);

この配列には 2 つの要素が含まれており、各要素は「名前」と「年齢」を含む 1 次元配列です。2 つのキーおよび対応する値。この 2 次元配列は、人々のグループの名前と年齢情報を表すことができます。

2. 2 次元配列の変換

  1. 1 次元配列をキーと値のペアに変換します

2 次元配列を処理する前に、まず、1 次元配列を指定されたキーと値のペアの形式に変換する方法を見てみましょう。 PHP には、この関数を実装するための非常に実用的な関数 array_column() が用意されています。 array_column() 関数は、多次元配列から指定された列を削除し、その列の値を返すことができます。例:

$data = array(
    array("name" => "Tom", "age" => 20),
    array("name" => "Jerry", "age" => 18)
);

$names = array_column($data, "name");
print_r($names);

出力:

Array
(
    [0] => Tom
    [1] => Jerry
)

上記のコードでは、array_column() 関数を使用して $data 配列の "name" 列を抽出し、新しいファイルに格納します。配列 $names。このようにして、すべての名前情報を簡単に取得できます。

  1. 2 次元配列を指定されたキー値形式に変換する

実際の開発では、通常、次のようなさまざまな条件に従って 2 次元配列を整理する必要があります。年齢ごとに分類したり、イニシャルなどで並べ替えたりします。現時点では、PHP の配列関数を使用してこの目標を達成できます。以下に、一般的に使用されるいくつかの方法を紹介します。

(1) array_reduce() 関数を使用する

array_reduce() 関数は、配列内のすべての要素に対して累積計算を実行し、結果を返すことができます。この関数を使用すると、指定されたキー値に従って 2 次元配列内の要素を結合できます。

たとえば、上記の $data 配列を「年齢」値に従って分類したい場合は、次のコードを使用できます:

$result = array_reduce($data, function ($acc, $item) {
    $age = $item['age'];
    if (!isset($acc[$age])) {
        $acc[$age] = array();
    }
    $acc[$age][] = $item;
    return $acc;
}, array());

print_r($result);

出力:

Array
(
    [20] => Array
        (
            [0] => Array
                (
                    [name] => Tom
                    [age] => 20
                )

        )

    [18] => Array
        (
            [0] => Array
                (
                    [name] => Jerry
                    [age] => 18
                )

        )

)

上記のコードでは、PHP 匿名関数と array_reduce() 関数を使用しました。無名関数の最初のパラメータ $acc は、累積された結果を格納するために使用されるアキュムレータを表し、2 番目のパラメータ $item は配列内の各要素を表します。関数本体では、まず要素の "age" 値を取得し、次に "age" 値に対応する配列がアキュムレータに既に存在するかどうかを確認します。存在しない場合は、新しい配列を作成し、最後に追加します。この配列内の要素。

(2) array_map() 関数を使用する

array_map() 関数は、配列内の各要素を処理し、新しい配列を返すことができます。この関数を使用すると、指定されたキー値に従って 2 次元配列の要素を変更できます。

たとえば、次のコードは、上記の $data 配列内の各要素の「name」キー値を要素の「age」値に変更し、それを新しい配列に格納します。 ##出力:

$result = array_map(function ($item) {
    $age = $item['age'];
    $item['name'] = $age;
    return $item;
}, $data);

print_r($result);

上記のコードでは、PHP 匿名関数と array_map() 関数を使用しました。無名関数のパラメータ $item は、配列内の各要素を表します。関数本体では、まず要素の「age」値を取得し、次にその値を要素の「name」キーに割り当てます。

3. まとめ

以上は、PHP で 2 次元配列を指定したキー値に変換する方法です。 () 変換する関数 1 次元配列を指定されたキーと値のペアの形式に変換します。

array_reduce() 関数を使用して、指定されたキー値に従って 2 次元配列を結合します。

    array_map() 関数を使用して、指定されたキー値に従って 2 次元配列内の要素を変更します。
  1. 実際の開発では、さまざまなビジネス ニーズに合わせて、2 次元配列内の要素を処理する適切な方法を選択できます。

以上がPHP で 2 次元配列を指定されたキー値に変換する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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