現在の位置: ホーム> 最新記事一覧> array_columnとarray_filterを使用して、指定された基準の列を取得します

array_columnとarray_filterを使用して、指定された基準の列を取得します

M66 2025-05-11

PHPでは、 Array_ColumnArray_Filter関数は、特に特定の基準を満たす2次元配列から指定された列データを抽出する必要がある場合、配列データを処理するときに非常に便利なツールです。この記事では、これら2つの関数を使用してこれを達成する方法について説明します。

array_column関数の紹介

array_column関数は、多次元配列から列の値を抽出し、新しい配列を返すために使用されます。その基本的な構文は次のとおりです。

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

  • $ column_key :抽出する列のキー名。

  • $ index_key (オプション):このパラメーターが提供されている場合、返された配列はこのキーを新しい配列のキーとして使用します。

たとえば、次の2次元配列があるとします。

 $data = [
    ['id' => 1, 'name' => 'John', 'age' => 25],
    ['id' => 2, 'name' => 'Jane', 'age' => 30],
    ['id' => 3, 'name' => 'Joe', 'age' => 22],
];

array_column関数を使用して、すべてのユーザーの名前列を抽出できます。

 $names = array_column($data, 'name');
print_r($names);

出力は次のとおりです。

 Array
(
    [0] => John
    [1] => Jane
    [2] => Joe
)

array_filter関数の紹介

array_filter関数は、基準を満たす配列の要素をフィルタリングし、要素を返すために使用されます。その基本的な構文は次のとおりです。

 array_filter(array $array, ?callable $callback = null, int $mode = 0): array
  • $配列:入力配列。

  • $ callback :配列の条件をフィルタリングするために使用されるコールバック関数。

  • $モード(オプション):フィルタリングモード、 array_filter_use_keyは、キーフィルタリング、 array_filter_use_bothキーと値フィルタリング、デフォルトフィルタリングに使用されます。

前のアレイから24歳以上のユーザーを除外したいと仮定し、コールバック関数でarray_filterを使用できます。

 $filteredData = array_filter($data, function($person) {
    return $person['age'] > 24;
});
print_r($filteredData);

出力は次のとおりです。

 Array
(
    [1] => Array
        (
            [id] => 2
            [name] => Jane
            [age] => 30
        )
    [0] => Array
        (
            [id] => 1
            [name] => John
            [age] => 25
        )
)

array_columnarray_filterを組み合わせて、基準を満たす指定された列データを抽出します

array_columnarray_filterを組み合わせて特定の条件を満たす指定された列データを抽出する場合は、最初にarray_filter関数を使用してarrayをフィルタリングし、次にarray_column関数を使用して対応する列を抽出できます。

たとえば、24歳以上のすべてのユーザーの名前列を見つける必要があるとします。

 $filteredNames = array_column(
    array_filter($data, function($person) {
        return $person['age'] > 24;
    }),
    'name'
);

print_r($filteredNames);

出力は次のとおりです。

 Array
(
    [0] => John
    [1] => Jane
)

この例は、データ( array_filter )を最初にフィルタリングし、必要な列( array_column )を抽出することにより、基準を満たすデータを取得する方法を示しています。

例: array_columnおよびarray_filterと組み合わせてURLからのデータを取得します

データソースがAPIまたはWebサイトによって返される結果である場合、返されるデータは通常、複数の要素を含むJSONオブジェクトです。たとえば、 https://api.m66.net/usersからユーザーデータを取得し、特定の基準(24歳以上の年齢など)を満たすユーザー名のみを気にするとします。あなたはこのようにそれをすることができます:

 $url = "https://api.m66.net/users";
$response = file_get_contents($url);
$data = json_decode($response, true);

$filteredNames = array_column(
    array_filter($data, function($person) {
        return $person['age'] > 24;
    }),
    'name'
);

print_r($filteredNames);

この例では、最初に、ユーザーデータはM66.NETからFile_Get_Contentsから取得され、 Array_Filterは24歳以上のユーザーをフィルタリングするために使用され、最後に名前列はArray_Columnを介して抽出されます。

array_columnarray_filter関数の組み合わせにより、複雑な2次元配列の基準を満たす特定の列データを簡単に抽出できます。この方法は、API、データベースクエリの結果などによって返されるデータの処理に非常に役立ち、データ処理の複雑さを大幅に簡素化できます。