我有幾個 json 檔案,每個 json 檔案如下所示:
{
"id": "id_1638974137049",
"weeknr": 48,
"dayhours": 5,
"tvt": 1.25
}
另一個檔案:
{
"id": "id_1638974137050",
"weeknr": 48,
"dayhours": 6,
"tvt": 1.50
}
另一個:
{
"id": "id_1638974137023",
"weeknr": 48,
"dayhours": 7,
"tvt": 1.75
}
現在我想制作一個表格作為輸出,其中包含該周的weeknr、dayhours和tvthours。這是我到目前為止:
$files = glob('data/*.json'); // all json files in array
foreach($files as $file) {
$objs[] = json_decode(file_get_contents($file), true); // decode to php assoc array
}
foreach($objs as $key => $val) {
$weeknr = $val['weeknr']; // weeknr
$array_dayhours[$weeknr] = $val['dayhours']; // sum of all the dayhours from that week
$array_tvthours[$weeknr] = $val['tvt']; // sum of all the tvt hours from that week
// i dont know how to handle this further to create a new array which contains per week the dayhours and tvt hours
}
我需要這樣的輸出(在表中):
weeknr tot dayhours tot tvt hours
48 18 4.5
49 20 6.5
50 24 5.5
uj5u.com熱心網友回復:
你可以做這樣的事情
$files = glob('data/*.json'); // all json files in array
$objs = [];
//array to store all data
$weeksData = [];
foreach($files as $file) {
$objs[] = json_decode(file_get_contents($file), true); // decode to php assoc array
}
foreach($objs as $key => $val) {
//using weeknr as array key and pushing it to weekData array
$weeksData[$val['weeknr']] = [
'dayhours' => ($weeksData[$val['weeknr']]['dayhours'] ?? 0) $val['dayhours'],
'tvt' => ($weeksData[$val['weeknr']]['tvt'] ?? 0) $val['tvt']
];
}
uj5u.com熱心網友回復:
<?php
$files = glob('data*.txt'); // all json files in array
foreach($files as $file) {
$objs[] = json_decode(file_get_contents($file), true); // decode to php assoc array
}
$arrayResult=[];
foreach($objs as $key => $val) {
$weeknr = $val['weeknr']; // weeknr
if(isset($arrayResult[$weeknr]) && is_array($arrayResult[$weeknr])) // If already exist
$arrayResult[$weeknr]=["weeknr"=>$val['weeknr'],"dayhours"=>$arrayResult[$weeknr]["dayhours"] $val['dayhours'], "tvt"=>$arrayResult[$weeknr]["tvt"] $val['tvt']];
else // for new entry
$arrayResult[$weeknr]=["weeknr"=>$val['weeknr'],"dayhours"=>$val['dayhours'], "tvt"=>$val['tvt']];
}
您可以使用 $arrayResult 進行列印
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/376759.html
