• 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で多次元配列の並び替え(ソート)を行う【array_m……

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

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

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

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

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

XAMPPのサイトを別のPCやスマホで開く方法【同一LAN内……

2024年04月12日
同一LAN内(同じWifi環境下)であれば各デバイスのブラウザでURLにIPアドレスを打ち込むだけでPCのXAMPPにあるサイトへアクセスすることが可能です。
サムネイル

XAMPPでPHPのOPcacheの有効化を検証【備忘録】

2024年02月01日
XAMPPでOPcacheの有効化を行ってみたので、その時の手順を備忘録として残しておきます。「OPcache」は、PHPの初回実行時のキャッシュを2回目以降のアクセス時に利用することで、CPU負荷を軽減したり、PHPの高速化を実現するものです。
サムネイル

Laravelのプロジェクトでファビコンを設定する【favi……

2023年11月21日
Laravelのプロジェクトにおいても同様にHTMLのlinkタグを使用してWebサイトにファビコンを設定します。あらかじめLaravelプロジェクト内のディレクトリにアップロードしたファビコンデータをlinkタグのパスをhref属性に設定すればファビコンが表示されます。