如果数组不存在,添加键和值


Add key and value to array if it doesnt exist

我有一个名为$sales的数组它包含如下对象:

"DR22" => array:3 [▼
    "brand" => "DR22"
    "year" => "0"
    "last_year" => null
  ]
  "FGIPA46C" => array:3 [▼
    "brand" => "FGIPA46C"
    "month" => "3"
    "year" => "3"
  ]

现在每个应该有"月"年"去年"上个月",但如果没有销售,它不在那里,我得到,但如果它不存在,我只想添加0值。我试着:

    foreach ($sales as $sale)
    {  
        if (empty($sale['month'])) {
            $sale['month'] = 0;
        }
    }

但是它没有添加任何东西。吐出的都是一样的

foreach ($sales as &$sale) {if (empty($sale['month']))        { $sale['month'] = 0; }}

您需要通过引用(使用&)传递$sale数组。这将意味着原始的$sales数组被更新

或者您可以使用array_map函数,例如:

$array = array_map(function($item){
    if(empty($item["month"])){
        $item["month"] = 0;
    }
    return $item;
}, $array);