2013-08-03 4 views
-3

есть в моем стороне сервере моего json объекта в таком формате:Fetch сложного объекта JSON с PHP

{"page_1":{ 
    "stats":{ 
     "s1":10, "s2": 20} 
    }, 
    "rules":{ 
     "rule1":{ 
     "x": 2, "type":"normal"} 
     "rule2":{ 
     //etc 
     } 
    } 
    }, 
"page_2":{ 
    //etc 
    } 
} 

Как я могу получить доступ к другому элементу, используя foreach, например, потому что мне нужно, чтобы сохранить их в БД ,

UPDATE: Я пробовал, но напрасно:

foreach ($data as $key => $value) { 
    echo $key."\n"; 
    foreach ($value as $k => $v) { 
     echo $k." -- ".$v."\n"; 
    } 

}

+0

вы превращаю- из JSon строки? – bansi

+0

У меня уже есть строка –

+0

, вы можете использовать 'json_decode ($ json_string, true);' и получить его как php-массив. – bansi

ответ

1

Попробуйте

$json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; 
$myarr = json_decode($json,true); 
foreach($myarr as $key=>$val){ 
    echo $key, '=>' ,$val , "\n"; 
} 

Вы работаете с обычным PHP массива здесь.

Ваш код изменен (не тестировалось)

foreach ($data as $key => $value) { 
    echo $key."\n"; 
    echo "heeeeeeeeeeeeeeeeeere: ", $key['stats']['s1'] , "\n"; 
    foreach ($value as $k => $v) { 
     echo $k," -- ",$v,"\n"; 
    } 
} 
-1

Использование json_decode($str, true) для преобразования строки в ассоциативный массив. После этого вы можете напрямую обращаться к данным.

Смотрите также: PHP: Arrays

Смежные вопросы