現在の位置: ホーム> 最新記事一覧> PHPのarray_column関数を使用して結果の配列を再インドする方法は?

PHPのarray_column関数を使用して結果の配列を再インドする方法は?

M66 2025-04-29

PHPのarray_column()関数は、多くの場合、多次元配列からデータの列を抽出するために使用されます。特に抽出された列を新しいarrayインデックスとして使用する場合は、配列を再インド化する場合、 array_column()関数はこのタスクを支援します。この関数を使用してアレイを再インドする方法を詳細に説明しましょう。

1。array_column ()関数の概要

array_column()関数は、多次元配列から列のすべての値を抽出し、この列の値を新しい配列のインデックスとして使用できます。関数の構文は次のとおりです。

 array_column(array $array, mixed $column_key, mixed $index_key = null): array
  • $ array :入力多次元配列。

  • $ column_key :抽出される列のキー。

  • $ index_key :Reindexが必要な場合は、新しい配列インデックスに使用されるキーを指定できます。

2。例:配列と再インデックスから列を抽出します

ID名前を含むユーザーに関する情報を含む多次元配列があるとします。

 $users = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Charlie']
];

すべてのユーザーの名前フィールドを抽出し、新しい配列のインデックスとしてIDフィールドを抽出したい場合は、これを行うことができます。

 $result = array_column($users, 'name', 'id');
print_r($result);

出力:

 Array
(
    [1] => Alice
    [2] => Bob
    [3] => Charlie
)

この例では、 array_column()はすべてのユーザーの名前フィールドを抽出し、 IDフィールドを新しい配列インデックスとして使用します。

3.再インデックスのない列のみを抽出します

特定の列のデータのみを気にし、配列のインデックスを変更する必要がない場合は、 $配列$ column_keyパラメーターのみを渡すことができます。

 $result = array_column($users, 'name');
print_r($result);

出力:

 Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

この時点で、 array_column()はすべてのユーザー名を含む配列を返し、インデックスは0から始まります。

4。注意すべきこと

  • $ index_keyに対応するキーが元の配列に存在しない場合、 array_column()はデフォルトの整数インデックスを使用します。

  • $ column_keyに対応するキーが元の配列の一部の要素に存在しない場合、新しい配列で要素は省略されます。

5。実用的なアプリケーション:URL操作と組み合わせて

製品に関する情報のセットがあり、各製品にはProduct_IDURLがあり、 URLドメイン名を再インドして交換する必要があるとします。 array_column()array_map()を組み合わせて、この関数を実装できます。

 $products = [
    ['product_id' => 101, 'url' => 'http://example.com/product/101'],
    ['product_id' => 102, 'url' => 'http://example.com/product/102'],
    ['product_id' => 103, 'url' => 'http://example.com/product/103']
];

// 製品の抽出 URL,ドメイン名を置き換えます
$urls = array_column($products, 'url', 'product_id');
$updatedUrls = array_map(function($url) {
    return preg_replace('/http:\/\/example\.com/', 'http://m66.net', $url);
}, $urls);

print_r($updatedUrls);

出力:

 Array
(
    [101] => http://m66.net/product/101
    [102] => http://m66.net/product/102
    [103] => http://m66.net/product/103
)

この例では、 array_column()は製品のURLを抽出し、 array_map()preg_replace()を使用してURLのドメイン名を置き換えます。

6。概要

array_column()は、多次元配列から指定された列からデータを抽出するのに適した非常に強力な関数であり、インデックスを指定することにより、結果の配列を再配置することをサポートします。多次元配列を扱うときに、コードの複雑さを大幅に簡素化します。実際の開発では、 array_map()preg_replace()などの他の関数を使用して、より複雑な操作を簡単に実装できます。

この記事がPHPのarray_column()関数を使用して配列操作を実行する方法をよりよく理解できることを願っています。