Ich versuche, diesen JSON-StringParsing einen JSON-String mit mehreren Arrays
$json = {"fields":{
"relationshipStatus":[{"fieldId":4,"name":"Committed"},{"fieldId":2,"name":"Dating"},{"fieldId":6,"name":"Engaged"},{"fieldId":3,"name":"Exclusive"},{"fieldId":7,"name":"Married"},{"fieldId":8,"name":"Open Relationship"},{"fieldId":5,"name":"Partnered"},{"fieldId":1,"name":"Single"}],
"ethnicity":[{"fieldId":1,"name":"Asian"},{"fieldId":2,"name":"Black"},{"fieldId":3,"name":"Latino"},{"fieldId":4,"name":"Middle Eastern"},{"fieldId":5,"name":"Mixed"},{"fieldId":6,"name":"Native American"},{"fieldId":8,"name":"Other"},{"fieldId":9,"name":"South Asian"},{"fieldId":7,"name":"White"}],
}}
Mit dieser foreach-Schleife zu analysieren, schließlich mag ich die Daten zu übernehmen können und sie als Select/List-Dropdown-Listen auf einem bilden.
foreach($json['fields'] as $item){
foreach($item['relationshipStatus'] as $relationship){
echo $relationship['name'] . " " . $relationship['fieldId'] . "<br/>";
}
foreach($item['ethnicity'] as $ethnicity){
echo $ethnicity['name'] . " " . $ethnicity['fieldId'] . "<br/>";
}
}
Egal, wie ich versuche, um die Daten zu ziehen, halte ich Fehler immer ähnlich ist:
Notice: Undefined index: relationshipStatus in /Applications/MAMP/htdocs/updateprofile.php auf Linie 126 Warnung: Invalid argument für foreach geliefert() in /Applications/MAMP/htdocs/updateprofile.php on line 126
Was mache ich falsch?
Wenn Sie pretty- print the json (dh mit jsonlint.com) Sie sehen, dass das Array tatsächlich unter $ json ['fields'] ['relationshipStatus'] ', und nicht direkt unter' $ json ['fields'] 'wie in dein Code. – JimL
Sie sind absolut richtig. –