2016-04-21 11 views
0

Ich bekomme einige Daten von einer API in JSON. Eine typische Antwort wie folgt aussieht:JSON-Antwort mit PHP-Array neu erstellen

[ 
    { 
    "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 ... 

Diese Antwort mehrere Spiele hat (die obige Antwort ist nur ein Spiel). Ich habe eine iOS App, die mit anderen APIs funktioniert (ich möchte den App-Code nicht ändern). Die alte App hat alle Spiele innerhalb eines Arrays wie folgt aus:

"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, 

Also, was ich will ist, das erste JSON Antwort innerhalb eines Arrays setzen tun „passt“ wie kann ich dies tun, mit einem foreach?

Antwort

0

Sie müssen die Json Antwort entschlüsseln und sie in ein neues Array mit ‚Matches‘ wie so verkeilt setzen:

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

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

nicht denken Sie benötigen Sie einen foreach hier, aber ich kann nicht verstehen, du vollständig. Was Sie als Erstes tun wollen, ist das Dekodieren dieses JSON in das PHP-Array unter Verwendung von json_decode. Erstellen Sie dann ein neues Array und legen Sie das erste decodierte Array in entspricht. Beispiel:

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

Wenn Sie jetzt mit diesem Array itterate müssen Sie einfach $games["matches"] in foreach setzen.

Verwandte Themen