現在の位置: ホーム> 最新記事一覧> array_columnを使用して、関連する配列の指定されたキー値を抽出します

array_columnを使用して、関連する配列の指定されたキー値を抽出します

M66 2025-04-28

PHPでは、 Array_Columnは、多次元配列から特定の列の値を抽出する非常に便利な関数です。この関数は、特にデータセットから特定のキーの値を除外する必要がある場合、連想配列を処理するのに非常に便利です。

array_column関数の基本的な使用

array_column関数は、3つのパラメーターを受け入れます。

 array_column(array $input, mixed $column_key, mixed $index_key = null): array
  • $入力:入力多次元配列、通常は連想配列。

  • $ column_key :抽出する列名または列キー(配列のインデックスにすることができます)。

  • $ index_key :結果配列のキーを指定するオプションパラメーター。指定されていない場合、デフォルトで数値インデックスが使用されます。

例1:配列から特定のキーの値を抽出します

多次元配列があるとします。各要素は、 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
)

この例では、各ユーザーの電子メールフィールドを抽出します。

例2: index_keyパラメーターを使用して再インデックスにします

列を抽出するときに、リターンアレイのインデックスとしてキー値を使用する場合があります。たとえば、ユーザーの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をキーとして取得します。

例3:多次元配列からURLを抽出および変更します

APIインターフェイスからURLを含むデータの配列を取得しますが、すべてのドメイン名をM66.netに均一に置き換える必要があるとします。 array_columnarray_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_mappreg_replaceなどの関数を組み合わせて、データのURLを簡単に処理および変更することができます。

array_columnは、特に複雑なデータ構造から特定の情報を抽出する必要がある場合、関連アレイのデータをより効率的に処理するのに役立つ強力なツールです。

テキストと前の部分の間の分割: