2016-07-25 2 views
-2

У меня есть JSON-файл (test.json), которыйJSON Еогеасп получает только первый результат из массива

{ 
    "fruit": [{ 
     "id": 364823, 
     "name": "Lemon", 
     "amount": [33], 
     "profile": "http://google.com", 
     "buyid": 5 
    }, { 
     "id": 367851, 
     "name": "Orange", 
     "amount": [69, 95, 166], 
     "profile": "http://google.com", 
     "buyid": 3 
    },{ 
     "id": 35647, 
     "name": "Apple", 
     "amount": [77, 43], 
     "profile": "http://google.com", 
     "buyid": 31 
    } ] 
} 

тогда у меня есть мой PHP скрипт для эха

$url="test.json"; 
    $json = file_get_contents($url); 
    $json = json_decode($json, true); 
    $names = array(); 
    foreach($json['fruit'][0]['amount'] as $val) 
{ 
    echo $val . " <br> "; 
} 

который возвращает

33 

как я могу его вернуть?

33 
69 95 166 
77 43 

я могу заставить его работать с другими, как ид, профиля и buyid, но не в этом массиве

+1

Почему "JavaScript" тег? Что касается вашего требования, вам не нужен вложенный цикл? – nnnnnn

+0

'['fruit'] [0] ['amount']' array имеет только один элемент '' amount ": [33]' –

+0

либо добавляет еще одно измерение 'foreach', указывающее на' amount', или implode на первом уровне – Ghost

ответ

3
foreach($json['fruit'] as $fruit){ 
    echo implode(' ',$fruit['amount']); 
} 

Live demo

+0

Работал, спасибо! – C0ft

+0

Добро пожаловать :-) Если он решает вашу проблему, не забудьте выбрать этот ответ. – BeetleJuice