• HOME > 
  • PHP > 
  • PHPで多次元配列から特定のカラムの値を取得する【array...

PHPで多次元配列から特定のカラムの値を取得する【array_column】

投稿日:

このページにはGoogleアドセンス広告とアフィリエイト広告が含まれています。

カテゴリー記事のアイキャッチ画像
広告
広告

array_column関数でできること

PHPのarray_columnは多次元配列の中から指定したカラムの値のみを抽出することができる関数です。

抽出した値は新しい配列に格納されて返ってきます。

例えば、下図のようなデータベースから取得したデータは多次元配列になっていることが多いと思いますが、

テーブルの例

PHP

$arr1 = [
    ['id' => 1, 'name' => '東京都', 'code' =>'tokyo', 'furigana' => 'トウキョウト'],
    ['id' => 2, 'name' => '埼玉県', 'code' =>'saitama', 'furigana' => 'サイタマケン'],
    ['id' => 3, 'name' => '千葉県', 'code' =>'chiba', 'furigana' => 'チバケン'],
    ['id' => 4, 'name' => '神奈川県', 'code' =>'kanagawa', 'furigana' => 'カナガワケン'],
];

array_columnを使えばテーブルのデータの中から、フリガナのカラムの値のみを取り出すといったことができます。

ループを使って配列から値を取り出すという手段もありますが、どうしてもコードが煩雑になりがちです。一方array_columnを利用すれば簡潔なコードで処理を実装することができます。

array_column関数の使い方

array_column関数は次のように記述して使用します。

array_columnは第一引数に対象の配列を、第二引数に抽出したいカラムを指定します。

array_columnの書き方

先ほどの配列($arr1)を例に、array_columnを使って配列の中から「furigana」カラムの値のみを取り出してみます。

PHP

$furigana = array_column($arr1,'furigana');
print_r($furigana);
//Array ( [0] => トウキョウト [1] => サイタマケン [2] => チバケン [3] => カナガワケン )

特定のカラムをキーにした連想配列を作る

array_columnは第三引数を指定すると、そのカラムをキー、第二引数を値にした連想配列に変換することができます。

array_columnで第三引数を指定した書き方

先ほどの配列($arr1)に対して第三引数に「code」を指定してarray_columnを実行してみます。

PHP

    $furigana = array_column($arr1,'furigana','code');
    print_r($furigana);
    //Array ( [tokyo] => トウキョウト [saitama] => サイタマケン [chiba] => チバケン [kanagawa] => カナガワケン )

codeをキーにすることができたので、例えば「$furigana['tokyo']」という書き方で指定したキー「tokyo」に対する値(フリガナ「トウキョウト」)を取り出すことができます。

配列内を検索するときに活用する

「指定したカラムに特定の値が含まれるもの」という絞り込みをしたいケースは、array_columnとarray_searchと組み合わせることで実装できます。

詳しくはarray_searchのページをご覧ください。

まとめ

以上が、array_columnを使ってPHPで多次元配列から特定のカラムの値を取得する方法です。

特にデータベースを扱ったプログラムで重宝する関数と言えるのではないでしょうか。

広告
広告

関連する記事

サムネイル

PHPで配列内を検索してインデックス番号を取得する【arra……

2024年07月03日
array_searchは、配列内から特定の値を検索し、見つかった場合はその値のキー(インデックス番号)を返す関数です。該当する値が複数ある場合は、はじめに見つかったインデックス番号を返します。
サムネイル

PHPで配列内に値が存在するか判定する【in_array】

2024年07月02日
PHPのin_arrayは、配列内に特定の値が存在するかを判定して、結果をtrueかfalseで返してくれる関数です。第一引数に「調べたい値」、第二引数に「対象の配列」を指定して判定を行います。
サムネイル

PHPで配列から特定の値を持つキーを全て取得する【array……

2024年07月02日
HPのarray_keys関数は対象の配列からすべてのキー、もしくは特定の値を持つキーを取得して新しい配列として返してくれる関数です。基本的には引数に配列と検索する値をセットして使用します。
サムネイル

PHPで多次元配列の並び替え(ソート)を行う【array_m……

2024年06月13日
PHPで配列のソートを行う方法は他にもありますが、array_multisort関数を使えば、とても簡潔なコードで多次元配列を任意の条件・順序で並び替えを行うことができます。
サムネイル

PHPで配列の最小値や最大値を取得する【minとmax】

2024年06月13日
PHPのmin関数とmax関数はそれぞれ配列の最小値と最大値を取得できる関数です。引数に対象の配列を指定すると最小値や最大値を返します。
サムネイル

XAMPPでSSLを有効にする方法【httpsでアクセスでき……

2024年04月12日
最終更新日:2024年10月02日
XAMPPをSSL化してhttpsでアクセスできるようにするには、設定ファイルの変更と証明書の作成が必要です。