[英]Json data group by team name with php
我必須在各自的團隊名稱下顯示團隊得分,我有以下json數據
{ "id":319231, "innings":[ {"id":967766}, {"id":967767}, {"id":967768}, {"id":967769} ], "team1":{ "team":{"name":"Minor Counties","id":115104,"club":{"name":"Minor Counties","id":98110}}, "innings":[ {"id":967766,"points":253,"wickets":10,"overs":86,"balls":4}, {"id":967768,"points":190,"wickets":5,"overs":61,"balls":0} ] }, "team2":{ "team":{"name":"Major Counties","id":93648,"club":{"name":"Major Counties","id":35487}}, "innings":[ {"id":967767,"points":229,"wickets":10,"overs":67,"balls":4}, {"id":967769,"points":64,"wickets":4,"overs":23,"balls":2} ] }, }
現在我想要這樣的結果:
Minor Counties Major Counties
253/10 & 190/5 229/10 & 64/4
目前,我得到的結果是:
Minor Counties Minor Counties Major Counties Major Counties
253/10 190/5 229/10 64/4
到目前為止,這是我的php代碼:
$team1 = $read_json->team->team1->name; $team2 = $read_json->team->team2->name; foreach($read_json->team1->innings as $team1Innings){ $points = $team1Innings->points; $wickets = $team1Innings->wickets; $overs = $team1Innings->overs; $balls = $team1Innings->balls; echo "<div class=\\"score-total\\"><span class=\\"score-team\\">$team1</span>$points/$wickets<span class=\\"score-overs\\">$overs.$balls overs</span></div>"; }
$json = '{
"id":319231,
"innings":[
{
"id":967766
},
{
"id":967767
},
{
"id":967768
},
{
"id":967769
}
],
"team1":{
"team":{
"name":"Minor Counties",
"id":115104,
"club":{
"name":"Minor Counties",
"id":98110
}
},
"innings":[
{
"id":967766,
"points":253,
"wickets":10,
"overs":86,
"balls":4
},
{
"id":967768,
"points":190,
"wickets":5,
"overs":61,
"balls":0
}
]
},
"team2":{
"team":{
"name":"Major Counties",
"id":93648,
"club":{
"name":"Major Counties",
"id":35487
}
},
"innings":[
{
"id":967767,
"points":229,
"wickets":10,
"overs":67,
"balls":4
},
{
"id":967769,
"points":64,
"wickets":4,
"overs":23,
"balls":2
}
]
}
}';
$items = json_decode($json);
unset($items->id);
unset($items->innings);
foreach ($items as $item) {
echo "<b>{$item->team->name}</b>";
$innings = [];
foreach ($item->innings as $inning) {
$innings[] = "{$inning->points} / {$inning->wickets}";
}
echo '<br>';
echo implode(' & ', $innings);
echo '<br>';
}
將json_decode()與true
作為第二個參數使用,它將為您提供一個關聯數組,並將JSON object
轉換為PHP object
這將使您的生活更輕松。
嘗試這個 :
$jsonObj = json_decode($json,true);
$inningsPoint = [];
foreach ($jsonObj as $teamData) {
if(!empty($teamData[team][name])) {
echo $teamData[team][name].'<br>';
$inningsPoint = [];
}
foreach ($teamData[innings] as $inningsData) {
$inningsPoint[] = "$inningsData[points] / $inningsData[wickets]";
}
echo implode(' & ', $inningsPoint);
}
<?php
function showteams_results($k1,$points){
switch ($k1) {
case 'team1':
foreach ($points as $key => $value) {
if($key=="team1")
{
echo ucfirst($key)."<br>";
foreach ($value as $k => $v) {
echo "Innings".$v."<br>";
}
}
}
break;
case 'team2':
foreach ($points as $key => $value) {
if($key=="team2")
{
echo ucfirst($key)."<br>";
foreach ($value as $k => $v) {
echo "Innings".$v."<br>";
}
}
}
break;
default:
echo "Team no points!";
break;
}
}
$points=array();
$jsonObj = json_decode($json,true);
$inningsPoint = [];
foreach ($jsonObj as $k1 => $teamData) {
//extracting points of team1---------->
if($k1=="team1"){
//showteams_results($k,$jsonObj);
foreach ($teamData as $k => $v) {
if($k=="innings")
{
foreach ($v as $k => $vf) {
foreach ($vf as $k => $vk) {
if($k=="points")
$points["team1"][]=$vk;
}
}
}
}
//sending data teams
showteams_results($k1,$points);
}
//extracting points of team2---------->
if($k1=="team2"){
//showteams_results($k,$jsonObj);
foreach ($teamData as $k => $v) {
if($k=="innings")
{
foreach ($v as $k => $vf) {
foreach ($vf as $k => $vk) {
if($k=="points")
$points["team2"][]=$vk;
}
}
}
}
//sending data teams
showteams_results($k1,$points);
}
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.