LoginSignup
0
0

More than 1 year has passed since last update.

【PHP】IDが一致した配列同士を結合する。配列にカラムを追加する

Last updated at Posted at 2021-08-02
<?php

$cooking = [
  ["menu_id" => 40,"menu_name" => "お好み焼き","submenu_name" => "鰹節","drink" => "ハイボール"],
  ["menu_id" => 20,"menu_name" => "カレー","submenu_name" => "ライス","drink" => "烏龍茶"],
  ["menu_id" => 99,"menu_name" => "パスタ","submenu_name" => "タバスコ","drink" => "ビール"],
  ["menu_id" => 10,"menu_name" => "焼き肉","submenu_name" => "ソース","drink" => "ジンジャエール"],
  ["menu_id" => 30,"menu_name" => "寿司","submenu_name" => "醤油","drink" => "緑茶"],
  ["menu_id" => 50,"menu_name" => "サンドイッチ","submenu_name" => "ラー油","drink" => "紅茶"]
];

$add = [
    0 => [ 'id' => 10, 'age' => '1995年06月08日'],
    1 => [ 'id' => 20, 'age' => '2009年05月23日'],
    2 => [ 'id' => 30, 'age' => '2006年08月26日'],
    3 => [ 'id' => 40, 'age' => '1993年02月24日']
];


$add =  array_column($add, 'age', 'id');


foreach($cooking as $list ){
    if(!empty($add[$list['menu_id']])){
        $result[] = $list + ['age' => $add[$list['menu_id']]];
    }
};


var_dump($result);

結果

array(4) {
  [0]=>
  array(5) {
    ["menu_id"]=>
    int(40)
    ["menu_name"]=>
    string(15) "お好み焼き"
    ["submenu_name"]=>
    string(6) "鰹節"
    ["drink"]=>
    string(15) "ハイボール"
    ["age"]=>
    string(17) "1993年02月24日"
  }
  [1]=>
  array(5) {
    ["menu_id"]=>
    int(20)
    ["menu_name"]=>
    string(9) "カレー"
    ["submenu_name"]=>
    string(9) "ライス"
    ["drink"]=>
    string(9) "烏龍茶"
    ["age"]=>
    string(17) "2009年05月23日"
  }
  [2]=>
  array(5) {
    ["menu_id"]=>
    int(10)
    ["menu_name"]=>
    string(9) "焼き肉"
    ["submenu_name"]=>
    string(9) "ソース"
    ["drink"]=>
    string(21) "ジンジャエール"
    ["age"]=>
    string(17) "1995年06月08日"
  }
  [3]=>
  array(5) {
    ["menu_id"]=>
    int(30)
    ["menu_name"]=>
    string(6) "寿司"
    ["submenu_name"]=>
    string(6) "醤油"
    ["drink"]=>
    string(6) "緑茶"
    ["age"]=>
    string(17) "2006年08月26日"
  }
}
0
0
0

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
0