PHPでは、 Array_Column関数は、多次元配列から特定の列からデータを抽出するのに役立つ非常に強力なツールです。通常、 array_columnは2次元配列から列のすべての値を抽出するために使用されますが、列のインデックスと値の組み合わせを抽出するなど、いくつかのトリックで抽出されたコンテンツをカスタマイズすることもできます。次に、これを達成する方法を説明します。
まず、 array_column関数の基本的な使用法を簡単に確認しましょう。その構文は次のとおりです。
array_column(array $array, mixed $column_key, mixed $index_key = null): array
$ array :入力多次元配列。
$ column_key :抽出される列のキー(列名またはインデックスにすることができます)。
$ index_key (オプション):配列内の各要素を返すためにインデックスキーとして使用される列を指定します。
次のような2次元配列があるとします。
$people = [
['id' => 1, 'name' => 'John', 'age' => 25],
['id' => 2, 'name' => 'Jane', 'age' => 30],
['id' => 3, 'name' => 'Tom', 'age' => 35]
];
Array_Columnを使用して、名前の列を抽出するなどの特定の列を抽出できます。
$names = array_column($people, 'name');
print_r($names);
出力の結果は次のとおりです。
Array
(
[0] => John
[1] => Jane
[2] => Tom
)
これで、列のインデックスと値の組み合わせを抽出したい場合は、少し変更して実行できます。
抽出配列内の列インデックスと値の組み合わせをカスタマイズするには、 array_column関数を使用してターゲット列を抽出し、列アレイを繰り返してインデックスと値を組み合わせます。たとえば、名前列を抽出して対応するIDでインデックスを作成し、最後にIDと名前キー値のペアで構成される配列を出力できます。
$people = [
['id' => 1, 'name' => 'John', 'age' => 25],
['id' => 2, 'name' => 'Jane', 'age' => 30],
['id' => 3, 'name' => 'Tom', 'age' => 35]
];
// 抽出する id そして name 列の組み合わせ
$result = array_column($people, 'name', 'id');
// 出力結果
print_r($result);
Array
(
[1] => John
[2] => Jane
[3] => Tom
)
この例では、 array_column($ people、 'name'、 'id')は名前列を抽出し、 IDを備えた新しい配列をインデックスとして生成します。このようにして、 IDと名前の配列を取得します。
配列から複数の列の組み合わせを抽出する必要がある場合、 array_columnはニーズを直接満たすことができません。現時点では、カスタム関数を通じて実装できます。たとえば、 IDと年齢の列をインデックスとしてIDを持つ配列に結合し、値が名前と年齢を含むサブアレイであるとします。
$people = [
['id' => 1, 'name' => 'John', 'age' => 25],
['id' => 2, 'name' => 'Jane', 'age' => 30],
['id' => 3, 'name' => 'Tom', 'age' => 35]
];
$result = [];
foreach ($people as $person) {
$result[$person['id']] = ['name' => $person['name'], 'age' => $person['age']];
}
// 出力結果
print_r($result);
Array
(
[1] => Array
(
[name] => John
[age] => 25
)
[2] => Array
(
[name] => Jane
[age] => 30
)
[3] => Array
(
[name] => Tom
[age] => 35
)
)
この例では、配列を手動で反復し、 IDがキーであり、名前と年齢が値の組み合わせである新しい配列を作成します。
array_column関数は、2次元配列から単一の列からデータを抽出できる非常に強力なツールです。列のインデックスと値の組み合わせや複数の列の組み合わせの抽出など、より複雑な要件については、配列を通過して処理方法をカスタマイズすることで実現できます。 Array_Columnといくつかの単純な配列操作を柔軟に使用することにより、さまざまなデータ抽出およびフォーマット操作を簡単に実装できます。
うまくいけば、この記事がarray_column関数を使用する方法をよりよく理解し、配列からの抽出データをカスタマイズする方法をよりよく理解するのに役立ちます。ご質問がある場合は、お気軽にご質問ください!