PHPでは、 Array_Columnは、多次元配列から特定の列の値を抽出する非常に便利な関数です。この関数は、特にデータセットから特定のキーの値を除外する必要がある場合、連想配列を処理するのに非常に便利です。
array_column関数は、3つのパラメーターを受け入れます。
array_column(array $input, mixed $column_key, mixed $index_key = null): array
$入力:入力多次元配列、通常は連想配列。
$ column_key :抽出する列名または列キー(配列のインデックスにすることができます)。
$ index_key :結果配列のキーを指定するオプションパラメーター。指定されていない場合、デフォルトで数値インデックスが使用されます。
多次元配列があるとします。各要素は、 ID 、名前、電子メールフィールドを含むユーザーの関連情報を表し、 array_columnを使用してすべてのユーザーのメールアドレスを抽出できます。
<?php
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];
$emails = array_column($users, 'email');
print_r($emails);
?>
出力:
Array
(
[0] => alice@example.com
[1] => bob@example.com
[2] => charlie@example.com
)
この例では、各ユーザーの電子メールフィールドを抽出します。
列を抽出するときに、リターンアレイのインデックスとしてキー値を使用する場合があります。たとえば、ユーザーのIDをデフォルトの数値インデックスの代わりに配列のキーとして使用する場合、3番目のパラメーター$ index_keyを使用して指定できます。
<?php
$users = [
['id' => 1, 'name' => 'Alice', 'email' => 'alice@example.com'],
['id' => 2, 'name' => 'Bob', 'email' => 'bob@example.com'],
['id' => 3, 'name' => 'Charlie', 'email' => 'charlie@example.com']
];
$emails = array_column($users, 'email', 'id');
print_r($emails);
?>
出力:
Array
(
[1] => alice@example.com
[2] => bob@example.com
[3] => charlie@example.com
)
この時点で、返された配列は、数値インデックスではなく、 IDをキーとして取得します。
APIインターフェイスからURLを含むデータの配列を取得しますが、すべてのドメイン名をM66.netに均一に置き換える必要があるとします。 array_columnとarray_mapを使用して、この要件を達成できます。
<?php
$products = [
['id' => 1, 'name' => 'Product A', 'url' => 'https://example.com/product-a'],
['id' => 2, 'name' => 'Product B', 'url' => 'https://example.com/product-b'],
['id' => 3, 'name' => 'Product C', 'url' => 'https://example.com/product-c']
];
// すべてを抽出します URL
$urls = array_column($products, 'url');
// 交換する URL ドメイン名
$updatedUrls = array_map(function($url) {
return preg_replace('/https:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);
print_r($updatedUrls);
?>
出力:
Array
(
[0] => https://m66.net/product-a
[1] => https://m66.net/product-b
[2] => https://m66.net/product-c
)
array_mapおよびpreg_replace関数を介して、すべてのURLドメイン名をM66.netに置き換えます。
array_column関数は、多次元配列から特定の列の値を抽出できます。
$ index_keyパラメーターを使用して、返品配列のキー値を指定できます。
array_mapやpreg_replaceなどの関数を組み合わせて、データのURLを簡単に処理および変更することができます。
array_columnは、特に複雑なデータ構造から特定の情報を抽出する必要がある場合、関連アレイのデータをより効率的に処理するのに役立つ強力なツールです。
テキストと前の部分の間の分割: