首页 > 解决方案 > 将键值对添加到多维数组

问题描述

我有一个二维数组,我试图在我的外部数组上循环$jsonarray,并根据开关的输出向内部数组添加一个'color'键值对。当我在 JSON 中显示输出时,'color'所有字段都设置为 null。具有$jsonarray如下结构:

$jsonarray= [
    0=> [
        'deadline'     => 'deadline',
        'duedate'  => 'duedate',],
    1=> [
        'deadline'     => 'deadline',
        'duedate'  => 'duedate',],

我的代码看起来像这样:

    $i = 0;
    $keys = array_keys($jsonarray);
    for ($k = 0; $k < count($jsonarray); $k++){
   foreach ($jsonarray[$keys[$k]] as $key => $value) {
     $color = 0;
     switch ($i) {
       case 0:
         $color = '#AED5F1';
         break;
       case 1:
         $color = '#F7D590';
         break;
       case 2:
         $color = '#EE8970';
         break;
     }
    array_push($jsonarray[$k]['color'], $color);
     $i++;
      }
    }

我怎样才能解决这个问题?

标签: phparraysmultidimensional-array

解决方案


尝试这个:

foreach ($jsonarray as $i => &$value) {
    switch ($i) {
        case 0:
            $value['color'] = '#AED5F1';
            break;
        case 1:
            $value['color'] = '#F7D590';
            break;
        case 2:
            $value['color'] = '#EE8970';
            break;
    }
}

推荐阅读