[英]Fill array with zero values in a a given range
我正在使用laravel 5.3,這是我的代碼
$arrayData = array();
foreach ($stats as $key => $row) {
$arrayData[] = array(
'number' => $row->no,
'level' => $row->total_sent,
'past' => $row->past,
);
}
如果我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"
]
]
在上面沒有,分別是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"
]
希望問題清楚
提前致謝
用零填充值初始化數組:
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,
];
}
如果你不知道的最大no
值,你需要得到它。 然后使用array_fill
函數用零個元素填充$arrayData
$stats = collect($stats);
$arrayData = [];
$maxNo = $stats->max('no');
$arrayData = array_fill(0, $maxNo, [
'number' => 0,
'level' => 0,
'past' => 0
]);
$stats->each(function($row) use(&$arrayData){
$arrayData[$row->no] = [
'number' => $row->no,
'level' => $row->total_sent,
'past' => $row->past,
];
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.