LoginSignup
0

More than 3 years have passed since last update.

phpで連想配列から特定のカラムの値をkeyとvalueに指定して返す

Last updated at Posted at 2020-10-22

連想配列で特定のカラムの値をkeyにして単一のカラムの値をvalueにしたい場合、別の配列を用意しそこにループ処理で値を詰め直すということをやっていました。

<?php
    $foods = array(
        array(
            'id' => 1,
            'name' => 'Sushi',
            'country' => 'Japan',
        ),
        array(
            'id' => 2,
            'name' => 'hamburger',
            'country' => 'America',
        ),
        array(
            'id' => 3,
            'name' => 'Pasta',
            'country' => 'Italia',
        )
    );
?> 

この配列のidをkeyにnameをvalueにします。

ループ処理を用いたやり方

<?php
    $foods_menu = array();
    foreach($foods as $key => $food){
        $id = $food['id'];
        $name = $food['name'];

        $food_menu[$id] = $name;
    }
?> 

こんな感じで毎度ループを回してました。

けれどarray_column関数を使えば毎度ループを回すことなく同じことが実現できます。

array_columnを用いたやり方

<?php
    $foods_menu = array_column($foods,'name','id');
?> 

第一引数に対象の配列、第二引数にvalueにしたいカラム、第三引数にkeyにしたいカラムを指定することで実現できます。
(第三引数を指定しなければ0からkeyが割り当てられます。)

便利なのでぜひ。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0