現在の位置: ホーム> 最新記事一覧> 2つの異なるフィールドの値を新しい配列にマージする

2つの異なるフィールドの値を新しい配列にマージする

M66 2025-05-11

PHPでは、 Array_Column関数を使用して、多次元配列から単一の列の値を抽出します。特に、2Dアレイから特定のフィールドの値を抽出する場合は非常に便利です。それでは、2つの異なるフィールドの値を新しい配列にどのようにマージしますか? Array_Columnを使用してこの関数を実装する方法は次のとおりです。

サンプルシナリオ:

各要素がユーザーのID名前を含む配列があるとします。これらの値を抽出し、それらを新しい配列に統合したいとします。

コード例:

 <?php
// 生データアレイ
$data = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Charlie']
];

// 使用 array_column 抽出する 'id' そして 'name'
$ids = array_column($data, 'id');
$names = array_column($data, 'name');

// 2つのフィールドの値をマージします
$merged = array_map(function($id, $name) {
    return ['id' => $id, 'name' => $name];
}, $ids, $names);

// マージされた配列を出力します
print_r($merged);
?>

コード説明:

  1. データ配列:最初に、 ID名前フィールドを含む2次元配列$データを定義します。

  2. データを抽出するarray_column関数を使用して、 $ dataからIDおよび名前フィールドの値を抽出し、 $ ids$ name arrayに保存します。

  3. アレイのマージarray_map関数を介して、 $ idsの値と$ names arrayを新しい連想配列に順番にマージします。形式は['id' => $ id、 'name' => $ name]です。

  4. 出力結果:最後に、 print_r関数を使用して、マージアレイを出力します。

出力結果:

 Array
(
    [0] => Array
        (
            [id] => 1
            [name] => Alice
        )

    [1] => Array
        (
            [id] => 2
            [name] => Bob
        )

    [2] => Array
        (
            [id] => 3
            [name] => Charlie
        )
)

要約:

array_column関数とarray_mapを使用すると、配列内の異なるフィールドを非常に便利に新しい配列にマージできます。 array_columnでフィールドを抽出するプロセスはシンプルで高速ですが、 array_mapは、対応するルールに従って2つの配列の値をマージするのに役立ちます。このアプローチは、2つのフィールドをマージするのに適しているだけでなく、複数のフィールドのマージに簡単に拡張します。