2014-09-29 4 views
1

Я хочу получить доступ к значению country_id и country_name из этой строки декодирования json_decode(), но он не работает, мои декодированные данные присваиваются print_r(), приводится ниже:как отправить массив из представления в контроллер в codeigniter

{"country_Data": 
       [ 
        {"country_id":"1","country_name":"India"},   

        {"country_id":"2","country_name":"Saudi Arabia"}, 

        {"country_id":"3","country_name":"UAE"} 
       ] 
} 

я попытался как foreach($data['country_Data'][0]['country_id']) но не luck.please помощь заранее спасибо

ответ

1

Используйте для цикла, как это

$data = json_decode($json_data, true); // 2nd param converts output to associative arrays 

foreach($data['country_Data'] as $country_data) { 
    print_r($country_data); 
    echo $country_data['country_id'] .', '. $country_data['country_name']; 
} 
+0

Недействительного аргумент для Еогеаспа(). Он дает ошибку –

+0

Код, который я показал, предполагает, что у вас есть собственный массив данных $. Используйте json_decode для получения $ data, затем попробуйте распечатать его с помощью print_r. – Josnidhin

1

Вы сначала декодировали $ data json?

$data = json_decode($json) 

foreach($data['country_Data'] as $row) { 
    print_r($row); 
} 
+0

Недопустимый аргумент, предоставленный foreach(). Он дает ошибку –

0

поскольку json_decode создает объект из данных (по умолчанию), вы должны Acces его как свойство:

так:

foreach($countryArray->country_Data as $row) { 
    echo $row->country_id; 
} 

или использовать цикл другие ребята предложенного но вам нужно убедиться, что json_decode возвращает массив, вы можете сделать это, установив второй параметр в значение true,

$countryArray = json_decode($jsonString, true); 
1
//Your json encoded string 
$string = '{"country_Data": [{"country_id": "1","country_name": "India"},{"country_id": "2","country_name": "Saudi Arabia"},{"country_id": "3","country_name": "UAE"}]}'; 

//your data decoded in an array 
$arr = json_decode($string,true); 

foreach($arr as $item) 
{ 
     foreach($item as $value){ 
       print_r($value['country_id']." ".$value['country_name']."\n"); 
      } 

} 

//Printed data 
1 India 
2 Saudi Arabia 
3 UAE 

http://ideone.com/SmklSx

0

попробовать этот

$data = json_decode($json_data, true); 

foreach($data as $cd) { 
print_r($cd); 
echo $cd['country_id'] .', '. $cd['country_name']; 
} 
+0

Я думаю, что это будет полезно для оп и других посетителей, когда вы добавите некоторое объяснение своей интенции. – reporter

0
`$data = '{"country_Data":[{"country_id":"1","country_name":"India"}, 
      {"country_id":"2","country_name":"Saudi Arabia"}, 
      {"country_id":"3","country_name":"UAE"}]}'; 

$json = json_decode($data,true); 
foreach($json as $res) 
{ 
    foreach($res as $key => $value) 
    { 
     $datavalue[]=$value; 
    } 
} 
//print_r($datavalue); 
foreach($datavalue as $v) 
{ 
    echo $v['country_name'].'<br />'; 
} 

`

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