在给定范围内使用零值填充数组

Ram*_*ood 1 php loops laravel

我正在研究laravel 5.3,这是我的代码

$arrayData = array();
foreach ($stats as $key => $row) {
      $arrayData[] = array(
      'number'   => $row->no,
      'level'    => $row->total_sent,
      'past'     => $row->past,
  );
}
Run Code Online (Sandbox Code Playgroud)

如果我dd($arrayData)的输出是

array:3 [?
  0 => array:3 [?
    "no" => "4"
    "level" => 3
    "past" => "3"
  ]
  1 => array:3 [?
    "no" => "6"
    "level" => 3
    "past" => "3"
  ]
  2 => array:3 [?
    "no" => "9"
    "level" => 3
    "past" => "3"
  ]
]
Run Code Online (Sandbox Code Playgroud)

上面没有分别是4,6,9.我想最终输出应该包含完整的数据.如果没有退出,那么其他明智的数字应该为零.

在上述情况下,期望的输出与缺失位置一样,将存在具有零值的正确数字

array:11 [?
  0 => array:3 [?
    "no" => "0"
    "level" => 0
    "past" => "0"
  ]
  1 => array:3 [?
    "no" => "1"
    "level" => 0
    "past" => "0"
  ]
  2 => array:3 [?
    "no" => "2"
    "level" => 0
    "past" => "0"
  ]
  3 => array:3 [?
    "no" => "3"
    "level" => 0
    "past" => "0"
  ]
  4 => array:3 [?
    "no" => "4"
    "level" => 3
    "past" => "3"
  ]
  5 => array:3 [?
    "no" => "5"
    "level" => 0
    "past" => "0"
  ]
  6 => array:3 [?
    "no" => "6"
    "level" => 3
    "past" => "3"
  ]
  7 => array:3 [?
    "no" => "7"
    "level" => 0
    "past" => "0"
  ]
  8 => array:3 [?
    "no" => "8"
    "level" => 0
    "past" => "0"
  ]
  9 => array:3 [?
    "no" => "9"
    "level" => 3
    "past" => "3"
  ]
  10 => array:3 [?
    "no" => "10"
    "level" => 0
    "past" => "0"
  ]
Run Code Online (Sandbox Code Playgroud)

希望问题很清楚

提前致谢

spi*_*rit 5

使用零填充值启动数组:

for ($i=0; $i <= 10; $i++) {
    $arrayData[$i] = [
        "no" => "$i",
        "level" => 0,
        "past" => "0",
    ];
}
foreach ($stats as $key => $row) {
    $arrayData[$row->no] = [
        'no' => $row->no,
        'level' => $row->total_sent,
        'past' => $row->past,
    ];
}
Run Code Online (Sandbox Code Playgroud)