2016-04-21 6 views
0

Я получаю данные от API в JSON. Типичный ответ выглядит так:Восстановить ответ Json с помощью php-массива

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

ответ

0

Вам нужно будет декодировать ответ JSON и поместить его в новый массив шпонкой с «спичек», как так:

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

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

Не думаю, что вы будете нуждаться в foreach здесь, но я не мог понять, вы полностью. Сначала вы хотите декодировать json в массив PHP, используя json_decode, а затем создать новый массив и поместить первый декодированный массив в совпадениями. Пример:

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

Если теперь к itterate этого массива, просто нужно положить в $games["matches"] Еогеасп.