Estou tendo bastante dificuldades em pegar dados em um arquivo .json, ele possui vários objetos e quando uso o foreach() para percorre-lo.
Poe exemplo, segue o .json
{"card-header":{"raceId":"1706057","races":{"95049":{"meeting_abandoned":0,"track":"Kilkenny","races":[{"raceId":"1706057","raceDate":"2019-07-03","raceTime":"8:12"},{"raceId":"1706058","raceDate":"2019-07-03","raceTime":"8:27"},{"raceId":"1706059","raceDate":"2019-07-03","raceTime":"8:43"},{"raceId":"1706060","raceDate":"2019-07-03","raceTime":"9:02"},{"raceId":"1706857","raceDate":"2019-07-03","raceTime":"9:18"},{"raceId":"1706858","raceDate":"2019-07-03","raceTime":"9:34"},{"raceId":"1706859","raceDate":"2019-07-03","raceTime":"9:52"},{"raceId":"1706860","raceDate":"2019-07-03","raceTime":"10:07"},{"raceId":"1706861","raceDate":"2019-07-03","raceTime":"10:23"},{"raceId":"1706862","raceDate":"2019-07-03","raceTime":"10:41"}],"track_id":"50","tv_id":"","tv_name":""}},"courseId":95049,"country":"IRE","trackAbbrName":"K'kenny"},"card-title":{"postPick":"6-5-3","napNum":"","raceSisStatusTopicD5":"GREYHOUNDS\/2019-07-03\/KILKENNY\/08:12\/#SIS_STATUS","infoTopicD5":"GREYHOUNDS\/2019-07-03\/KILKENNY\/08:12\/OUTRIGHT WINNER\/#INFO\/PREFERRED_BOOKMAKER","priceTopicD5":"GREYHOUNDS\/2019-07-03\/KILKENNY\/08:12\/OUTRIGHT WINNER\/PREFERRED_DOG\/PREFERRED_BOOKMAKER","testingPriceTopic":"GREYHOUNDS\/2019-07-03\/KILKENNY\/08:12\/OUTRIGHT WINNER\/PREFERRED_DOG\/PREFERRED_BOOKMAKER","distance":480,"raceGrade":"A9","raceTypeDesc":"Flat","raceDatetime":"1562137920","raceHour":"08","raceMin":"12","reserved":"","tvId":"","bagsCode":"S","raceTitle":"Race 1"},"card-tabs":{"raceId":"1706057","raceDate":"2019-07-03 08:12","distance":"480","raceStatus":0,"raceTitle":"Welcome To Kilkenny Track A9 525","bagsCode":"S","trackName":"KILKENNY","trackCde":"KILK","rpTrackShortName":"Kilky","trackId":"50","country":"IRE","typeDesc":"Flat","raceGrade":"A9","selTrapNum":"6","tvId":"","dangerTrapNum":"5","fcastAltTrapNum":"3","napNum":"","raceDateDate":"2019-07-03","raceDateTime":"08:12"},"card":{"dogs":[{"dogId":"528848","trackId":"50","trapNum":"1","dogName":"Flexible Pango","dogColor":"BK","dogSex":"B","forecastComment":"Been battered around lately, due some luck","chanceOfWin":30.72,"trainerName":"M Kennedy","trainerLocation":"","forecast":"5\/1","topSpeed":"93","wideYn":"","handicapMetre":"","diffusionName":"FLEXIBLE_PANGO","spotlightComment":"Been battered around lately, due some luck","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"1Sep15","brt":"30.57","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Farloe Tango","dam":"Flexible Dora","birthMonYY":"Sep15","dateOfSeason":"","shortForm":"53355"},{"dogId":"532977","trackId":"50","trapNum":"2","dogName":"Bradys Choice","dogColor":"BK","dogSex":"B","forecastComment":"Finding trouble, not showcasing ability as a result","chanceOfWin":30.78,"trainerName":"M Fortune","trainerLocation":"","forecast":"5\/1","topSpeed":"91","wideYn":"","handicapMetre":"","diffusionName":"BRADYS_CHOICE","spotlightComment":"Finding trouble, not showcasing ability as a result","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"11Jan18","brt":"30.67","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Ballymac Eske","dam":"Marinas Blue","birthMonYY":"Jan18","dateOfSeason":"","shortForm":"T5666"},{"dogId":"528978","trackId":"50","trapNum":"3","dogName":"Littlest Hobo","dogColor":"WBK","dogSex":"B","forecastComment":"Learning twists and turns of track, may still run well","chanceOfWin":30.42,"trainerName":"D Fogarty","trainerLocation":"","forecast":"4\/1","topSpeed":"99","wideYn":"","handicapMetre":"","diffusionName":"LITTLEST_HOBO","spotlightComment":"Learning twists and turns of track, may still run well","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"1May17","brt":"30.31","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Sidarian Blaze","dam":"Miss Precedent","birthMonYY":"May17","dateOfSeason":"","shortForm":"532T3"},{"dogId":"532964","trackId":"50","trapNum":"4","dogName":"Amwhatiam","dogColor":"BE","dogSex":"B","forecastComment":"Luck tends to even itself out, due a change of it","chanceOfWin":30.51,"trainerName":"S O'Donnell","trainerLocation":"","forecast":"7\/2","topSpeed":"96","wideYn":"","handicapMetre":"","diffusionName":"AMWHATIAM","spotlightComment":"Luck tends to even itself out, due a change of it","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"12Sep17","brt":"30.4","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Superior Product","dam":"Aclamon Jill","birthMonYY":"Sep17","dateOfSeason":"","shortForm":"TTT64"},{"dogId":"528832","trackId":"50","trapNum":"5","dogName":"Heyisntthatright","dogColor":"BK","dogSex":"B","forecastComment":"Five alive? Must be paw perfect to avoid a bang","chanceOfWin":30.33,"trainerName":"M Bergin-Flynn","trainerLocation":"","forecast":"7\/2","topSpeed":"100","wideYn":"","handicapMetre":"","diffusionName":"HEYISNTTHATRIGHT","spotlightComment":"Five alive? Must be paw perfect to avoid a bang","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"15Aug17","brt":"30.13","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Barefoot James","dam":"Hey Ruby","birthMonYY":"Aug17","dateOfSeason":"","shortForm":"44336"},{"dogId":"533139","trackId":"50","trapNum":"6","dogName":"Kilbreedy Hulk","dogColor":"BK","dogSex":"D","forecastComment":"Being backed with good reason, leading player","chanceOfWin":30.29,"trainerName":"F Hickey","trainerLocation":"","forecast":"9\/4","topSpeed":"99","wideYn":"M","handicapMetre":"","diffusionName":"KILBREEDY_HULK","spotlightComment":"Being backed with good reason, leading player","nonRunner":"","reserved":"","isVacant":"","dateOfBirth":"21Oct17","brt":"30.23","bestTimeGrade":"","bestTimeGradeDate":"","sire":"Farloe Blitz","dam":"Garryglass Ros","birthMonYY":"Oct17","dateOfSeason":"","shortForm":"T6326"}]}}
card-header, card-title, card-tabs e card, são os objetos "principais"....
Por exemplo... se eu quero pegar apenas "distance" que está dentro do "card-header"estou usando...
foreach ($itens as $dados){
}
porém, está pegando "distance" de outros objetos, no caso que eu não queria....
então tentei assim...
foreach ($itens->card-header as $dados){
}
e assim
foreach ($itens->card-header as $dados=>$a){
}
Mas está me gerando erro no foreach...
Me salvem ai, como faço para acessar esses objetos "pai" separadamente... Me desculpe usar estes termos é que não sei realmente como chama-los!
Obrigado