PHPのarray_columnの使い方!多次元配列から特定の列を配列化する

PHPのarray_column関数は、多次元配列から指定されたキーの値だけを抽出し、新しい配列を作成します。
この関数を使うと、多次元配列から特定の列の値だけを簡単に取得できます。

データベースの検索結果やCSVデータを処理する場合など、多次元配列から特定の列の値だけを取得したい場合に便利です。

array_column関数の基本的な使い方

array_column関数は、多次元配列から指定されたキーの値だけを抽出し、新しい配列を返します。
基本的な構文は以下のとおりです。

array_column(array $array, mixed $column_key, mixed $index_key = null): array
  • $array: 多次元配列。
    • 値を取得する多次元配列を指定します。
  • $column_key: 値を取得するキー。
    • 取得する値のキーを指定します。
    • 数値添字配列の場合、数値インデックスを指定します。
  • $index_key: 返り値の配列のキーとして使用するキー(省略可能)。
    • 返り値の配列のキーとして使用するキーを指定します。
    • 省略した場合、自動的に0から始まる数値がキーとして割り当てられます。

array_column関数の戻り値

array_column関数の戻り値は、指定されたキーの値だけを抽出した新しい配列です。

多次元配列から特定の列の値を取得する

多次元の連想配列から、array_column関数を使って、特定の列を指定して取得します。

<?php
$array = [
    ['id' => 1, 'name' => 'apple', 'color' => 'red'],
    ['id' => 2, 'name' => 'banana', 'color' => 'yellow'],
    ['id' => 3, 'name' => 'orange', 'color' => 'orange'],
];

$names = array_column($array, 'name');

print_r($names);
// 結果:Array ( [0] => apple [1] => banana [2] => orange )
?>

最初に$array変数に多次元配列を作成しました。
そのあとにarray_column関数を使っています。

第1引数に対象の配列、第2引数に取り出したい列のキーを指定しています。
こうすることで、多次元配列$arrayからnameキーの値だけを抽出し、新しい配列$namesを作成しています。

返り値の配列のキーを指定する

取り出した列の値に対して、指定した列の値をキーにして、新しい配列を作ってみます。

<?php
$array = [
    ['id' => 1, 'name' => 'apple', 'color' => 'red'],
    ['id' => 2, 'name' => 'banana', 'color' => 'yellow'],
    ['id' => 3, 'name' => 'orange', 'color' => 'orange'],
];

$colors = array_column($array, 'color', 'name');

print_r($colors);
// 結果:Array ( [apple] => red [banana] => yellow [orange] => orange )
?>

array_column関数を使うときに、第3引数nameキーを指定しています。
こうすることで、第2引数の取り出した値の配列のキーをnameキーの値に設定しています。

出力すると、配列のキーがname列の値、配列の値がcolor列の値になっていることが確認できます。

存在しないキーを指定

存在しないキーを指定を指定した場合は、空配列が返ってきます。

$array = [
    ['id' => 1, 'name' => 'apple', 'color' => 'red'],
    ['id' => 2, 'name' => 'banana', 'color' => 'yellow'],
    ['id' => 3, 'name' => 'orange', 'color' => 'orange'],
];

$values = array_column($array, 'price');

print_r($values);
// 結果:Array () 

array_column関数使用時に存在しないprice列を指定しました。
この場合には、空配列が返ってきます。

array_column関数を使うメリット

array_column関数を使う主なメリットは以下のとおりです。

  • 多次元配列からの特定の列の値の抽出: 多次元配列から特定の列の値だけを簡単に抽出できます。
  • コードの簡潔化: ループ処理を記述する必要がなく、コードが簡潔になります。
  • 可読性の向上: コードの意図が明確になり、可読性が向上します。

PHPのarray_column関数の使い方まとめ

今回はPHPのarray_column関数の使い方について確認しました。
この記事の内容をまとめます。

・`array_column(array $array, mixed $column_key, mixed $index_key = null): array`で多次元配列から指定されたキーの値だけを抽出する。
・`$array`は多次元配列。
・`$column_key`は値を取得するキー。
・`$index_key`は返り値の配列のキーとして使用するキー(省略可能)。
・存在しない配列を指定すると、空配列となる。
・多次元配列から特定の列の値だけを取得したい場合に便利。
PHP

コメント