PHP では、配列の処理や操作が必要になることがよくあります。場合によっては、多次元配列から特定のデータ列を取得する必要がある場合、array_column() 関数を使用してこれを実現できます。この記事ではarray_column()関数の使い方を詳しく紹介します。
1. array_column() 関数とは
array_column() は、多次元配列から指定されたデータ列を取得するために使用される PHP 関数です。この関数は PHP 5.5 で導入され、連想配列とインデックス付き配列をサポートします。
関数プロトタイプ:
array_column ( array $array ,mixed $column_key [,mixed $index_key = null ] ) : array
パラメータの説明:
$array: 操作対象多次元配列;
$column_key: 取得する列のキー名または値;
$index_key: オプションのパラメーター、この値が指定されている場合、返される配列のキー名として使用されます。
2. 使用例
array_column() 関数の使用例をいくつか見てみましょう。
ユーザー情報を格納するインデックス配列 $users があり、そこからすべてのユーザーの名前を取得したいとします。これは、次のコードによって実現できます。
$users = array(0 => array('id'=>1, 'name'=>'Tom', 'email'=>'tom@example.com'), 1 => array('id'=>2, 'name'=>'Jerry', 'email'=>'jerry@example.com'), 2 => array('id'=>3, 'name'=>'Mike', 'email'=>'mike@example.com')); $names = array_column($users, 'name'); print_r($names);
出力結果は次のとおりです。
Array ( [0] => Tom [1] => Jerry [2] => Mike )
配列が連想配列の場合、同じ方法で、指定されたデータ列を取得できます。
たとえば、学生に関する情報を含む連想配列 $students があります。すべての学生の年齢を取得したいとします:
$students = array('Tom' => array('age'=>20, 'gender'=>'male', 'city'=>'Beijing'), 'Jerry' => array('age'=>21, 'gender'=>'female', 'city'=>'Shanghai'), 'Mike' => array('age'=>19, 'gender'=>'male', 'city'=>'Guangzhou')); $ages = array_column($students, 'age'); print_r($ages);
出力結果は次のとおりです:
Array ( [Tom] => 20 [Jerry] => 21 [Mike] => 19 )
多次元配列から複数のキー値を取得したい場合は、取得したいキー名を配列に入れて渡すことができます。それらを 2 番目のパラメータとして array_column() 関数を入力します。
たとえば、複数の都市の気温データを含む配列 $tempers があります。各都市の平均気温と最高気温を取得したいと考えています。これを行うことができます:
$temperatures = array( array('city'=>'Beijing', 'average'=>20, 'highest'=>28), array('city'=>'Shanghai', 'average'=>23, 'highest'=>30), array('city'=>'Guangzhou', 'average'=>25, 'highest'=>32) ); $infos = array_column($temperatures, array('average', 'highest'), 'city'); print_r($infos);
出力結果 返される配列のキー名を指定します:
Array ( [Beijing] => Array ( [average] => 20 [highest] => 28 ) [Shanghai] => Array ( [average] => 23 [highest] => 30 ) [Guangzhou] => Array ( [average] => 25 [highest] => 32 ) )
指定されたデータを取得するときに、返される配列のキー名を指定したい場合があります。カラム。 array_column()関数の第3引数に指定できます。
たとえば、前の例では、返される配列のキー名として「平均温度」と「最高温度」を使用したいと考えています。次のように記述できます:
$temperatures = array( array('city'=>'Beijing', 'average'=>20, 'highest'=>28), array('city'=>'Shanghai', 'average'=>23, 'highest'=>30), array('city'=>'Guangzhou', 'average'=>25, 'highest'=>32) ); $infos = array_column($temperatures, array('average', 'highest'), 'city'); $infos = array_map(function($v){return ['平均气温'=>$v[0], '最高气温'=>$v[1]];}, $infos); print_r($infos);
The出力結果は次のとおりです:
Array ( [Beijing] => Array ( [平均气温] => 20 [最高气温] => 28 ) [Shanghai] => Array ( [平均气温] => 23 [最高气温] => 30 ) [Guangzhou] => Array ( [平均气温] => 25 [最高气温] => 32 ) )
3. 結論
array_column() 関数は、多次元配列から指定された列のデータを簡単に取得でき、使用方法は単純明快です。実際の開発では、この機能を活用することで配列処理の効率化と精度の向上を図ることができます。
以上がPHPのarray_column()関数の使い方を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。