{
    "profiles": {
        "0": {
            "profiletoken": "73E327BEA-B550-4F73-831F-",
            "age": {
                "description": "Leeftijd",
                "answer_type": "numeric_value",
                "answerdata": "28"
            },
            "nickname": {
                "description": "Profielnaam",
                "answer_type": "text",
                "answerdata": "SlamDunk-1981"
            },
        "1": 
            "nickname": {
                "description": "Profielnaam",
                "answer_type": "text",
                "answerdata": "stefann2"
            }
}


De data is gevuld met dit soort json data:


$characters = json_decode($data,true); // decode the JSON feed
var_dump($characters);
foreach ($characters as $character) {
//	echo print_r($character);
	echo $character['profiles'][1];
}


Maar de loop zegt :

"e: Undefined index: profiles in"

Ik snap er niks meer van
En wat zegt de var_dump dan?
Volgens mij mis je een s bij de echo. $character in plaats van $characters
@Jeroen: Nee, want in een foreach wil je de array doorlopen. En voor elke iteratie wordt dan $character gebruikt.
Een beetje opmerkelijk is dat de json enkel uit objecten bestaat en dat er geen array's in voorkomen. Aangezien het eerste element key/id "0" heeft denk ik ook niet dat dit het database id is. Waarschijnlijk kun je in PHP de array wel gewoon doorlopen met een foreach. Echter begint de JSON niet met een "numerieke array" maar met een object "profiles". Je zou de foreach met deze kunnen "starten".

<?php
$data = json_decode($data,true); // decode the JSON feed

foreach($data['profiles'] as $profiles) {
echo $profiles['nickname']['answerdata'];
}
?>

[size=xsmall]Toevoeging op 09/02/2018 11:25:34:[/size]

[edit]
Aangezien de data niet erg consistent lijkt zou ik elk element in de array tevens eerst controleren met isset() of deze wel bestaat en een andere waarde dan NULL heeft.

Reageren