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);
?>
データ配列:最初に、 IDと名前フィールドを含む2次元配列$データを定義します。
データを抽出する: array_column関数を使用して、 $ dataからIDおよび名前フィールドの値を抽出し、 $ idsと$ name arrayに保存します。
アレイのマージ: array_map関数を介して、 $ idsの値と$ names arrayを新しい連想配列に順番にマージします。形式は['id' => $ id、 'name' => $ name]です。
出力結果:最後に、 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つのフィールドをマージするのに適しているだけでなく、複数のフィールドのマージに簡単に拡張します。