用php数组重建Json响应

用php数组重建Json响应

问题描述:

我从JSON的某个API获得一些数据。一个典型的响应看起来像:用php数组重建Json响应

[ 
    { 
    "id": "1918443", 
    "comp_id": "1322", 
    "formatted_date": "20.04.2016", 
    "season": "2015/2016", 
    "week": "32", 
    "venue": "De Grolsch Veste (Enschede)", 
    "venue_id": "1067", 
    "venue_city": "Enschede", 
    "status": "FT", 
    "timer": "", 
    "time": "18:45", 
    "localteam_id": "13460", 
    "localteam_name": "Twente", 
    "localteam_score": "2", 
    "visitorteam_id": "13253", 
    "visitorteam_name": "Excelsior", 
    "visitorteam_score": "0", 
    "ht_score": "[0-0]", 
    "ft_score": "[2-0]", 
    "et_score": null, 
    "penalty_local": null, 
    "penalty_visitor": null, 

etc ... 

此响应具有多个游戏(上述响应只有一个游戏)。 我有一个iOS应用程序与其他API(我不想更改应用程序代码)一起工作。旧的应用程序有一个这样的数组中的所有游戏:

"matches": [ 
    { 
    "id": "1918443", 
    "comp_id": "1322", 
    "formatted_date": "20.04.2016", 
    "season": "2015/2016", 
    "week": "32", 
    "venue": "De Grolsch Veste (Enschede)", 
    "venue_id": "1067", 
    "venue_city": "Enschede", 
    "status": "FT", 
    "timer": "", 
    "time": "18:45", 
    "localteam_id": "13460", 
    "localteam_name": "Twente", 
    "localteam_score": "2", 
    "visitorteam_id": "13253", 
    "visitorteam_name": "Excelsior", 
    "visitorteam_score": "0", 
    "ht_score": "[0-0]", 
    "ft_score": "[2-0]", 
    "et_score": null, 
    "penalty_local": null, 
    "penalty_visitor": null, 

所以我想要做的是把一个数组中的第一个JSON响应“匹配”我怎么能做到这一点与foreach

你将需要解码JSON响应,并把它与“匹配”像这样键入一个新的数组:

$json = //... your json response here 
$games = ['matches' => json_decode($json, true)]; 

foreach ($games as $game) { 
    // ... 
} 

不要以为你会需要一个foreach这里,但我可能不明白你完全。你首先要做的是将json解码为使用json_decode的PHP数组,然后创建一个新数组并将第一个解码数组放入匹配。例如:

$gameData = json_decode(/* your json string from above */); 
$games = [ 
    "matches" => $gameData 
]; 
echo json_encode($matches); 

如果你现在到i​​tterate这个数组,你只需把$games["matches"]到的foreach。