PHPの array_columnをきちんと学ぶ!サンプルコードで簡単理解

PHPの配列はとても便利です。

様々なデータを一括で持つことができます。

データベースから取得してきたデータも配列で返す事がほとんどです。

でも、一括でデータを持つことが出来るからこそデータの扱いや取り出しに悩む事があります。

PHPには様々な関数があり、配列のデータに関する関数もあります。

今回はそんな配列の関数の一つ、array_columnを以下の内容で紹介します。

【基礎】array_columnとは
【基礎】array_columnで好きな項目を取り出す
【応用】array_columnで取り出した項目を並び替え

array_columnついてわかりやすく解説していますので、ぜひ参考にしてください。。

目次

array_columnとは

array_columnは、配列から好きなデータを取り出す事が出来る関数です。

array_columnは以下のように記述します。

 array_column(配列, 項目);

配列・・・対象の配列を指定
項目・・・取り出したい項目を指定

例えば、以下の様な配列があるとします。

$book_data = array(
    array(
        'book_id' => 5,
        'book_name' => '本1'
    ),
    array(
        'book_id' => 10,
        'book_name' => '本2',
    ),
    array(
        'book_id' => 3,
        'book_name' => '本3',
    )
);

この配列のbook_nameというデータを取り出して配列化したい場合、以下のように取り出す事は出来ます。

<?php
$book_data = array(
    array(
        'book_id' => 5,
        'book_name' => '本1'
    ),
    array(
        'book_id' => 10,
        'book_name' => '本2',
    ),
    array(
        'book_id' => 3,
        'book_name' => '本3',
    )
);

foreach($book_data as $val){
    $book_data_disp[] = $val['book_name'];
}

print_r($book_data_disp);

?>
結果
Array
(
    [0] => 本1
    [1] => 本2
    [2] => 本3
)

「book_name」の項目を配列化できました。

ただ、foreachで一つずつ取り出して配列に入れる作業が必要です。

もっと簡単に取り出したい。

そこで、array_columnの出番です。

【基本】array_columnで好きな項目を取り出す

では、実際にarray_columnを使用してデータを取り出してみましょう。

以下サンプルコードです。

<?php
// 配列にデータを入れる
$book_data = array(
    array(
        'book_id' => 5,
        'book_name' => '本1'
    ),
    array(
        'book_id' => 10,
        'book_name' => '本2',
    ),
    array(
        'book_id' => 3,
        'book_name' => '本3',
    )
);

// 第一引数にデータを入れた配列を指定
// 第二引数に取り出したい項目名を指定
$array_column_data = array_column($book_data, 'book_name');

print_r($array_column_data);

?>
結果
Array
(
    [0] => 本1
    [1] => 本2
    [2] => 本3
)

foreachを使わなくても、目的の項目を配列化する事ができました。

【応用】array_columnで取り出した項目をキーに指定

最後に、目的の項目を取り出して別の項目をキーに指定するサンプルコードです。

<?php
$book_data = array(
    array(
        'book_id' => 5,
        'book_name' => '本1'
    ),
    array(
        'book_id' => 10,
        'book_name' => '本2',
    ),
    array(
        'book_id' => 3,
        'book_name' => '本3',
    )
);
// 第三引数にキーにする項目を指定する
$array_column_data = array_column($book_data, 'book_name', 'book_id');

print_r($array_column_data);

?>
結果
Array
(
    [5] => 本1
    [10] => 本2
    [3] => 本3
)

配列のキーが指定した項目の値になりました。

まとめ

本日は、PHPの配列データを取り出せるarray_columnについて説明しました。

色々な関数を知っているとコードをシンプルに書けますね。

それでは、また。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次