我試圖在特定年份的嵌套陣列中設定任何缺失月份的值。
資料:
$data = array(
'2019'=>array('January'=>224, 'March'=>66, 'September'=>301),
'2018'=>array('April'=>45, 'August'=>116, 'November'=>38)
);
正如您在上面的陣列中看到的,2019 年和 2018 年缺少月份。我怎樣才能添加那些缺失的月份并將值設定為零?請指教。
uj5u.com熱心網友回復:
用于array_replace()將一個陣列與另一個陣列重疊。
$months=json_decode('{"January":0,"February":0,"March":0,"April":0,"May":0,"June":0,
"July":0,"August":0,"September":0,"October":0,"November":0,"December":0}',true);
$data = array(
'2019'=>array('January'=>224, 'March'=>66, 'September'=>301),
'2018'=>array('April'=>45, 'August'=>116, 'November'=>38)
);
foreach ($data as $year=>$v)
$data[$year]=array_replace($months,$data[$year]);
print_r ($data);
如果 中存在鍵data,則使用其值,否則使用值 from months。
德游樂場
月份陣列的代碼(apHarmony)
uj5u.com熱心網友回復:
這個是使用嵌套回圈,你也可以看到,
//Month array creation
for($m=1; $m<=12; $m){
$months[$m] = date('F', mktime(0, 0, 0, $m, 1));
}
$data = array( '2019'=>array('January'=>224, 'March'=>66, 'September'=>301), '2018'=>array('April'=>45, 'August'=>116, 'November'=>38) );
//The iteration
foreach($data as $year => $val){
foreach($months as $month => $monthval){
$newdata[$year][$monthval] = !empty($data[$year][$monthval]) ? $data[$year][$monthval] : 0 ;
}
}
echo json_encode($newdata);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/365239.html
標籤:php
上一篇:不用回圈替換陣列中的字串
下一篇:自定義計劃事件不會觸發
