PHP массив и ошибки декодирования Json - PullRequest
0 голосов
/ 06 марта 2012

Пожалуйста, помогите, так как я потратил два дня на это ...

У меня есть объект JSON.как показано ниже.

[{"attr":{"id":"node_8","rel":"folder"},"data":"_demo","state":"closed"},{"attr":        {"id":"node_13","rel":"folder"},"data":"demo3","state":""}][{"attr":{"id":"node_8","rel":"folder"},"data":"_demo","state":"closed"},{"attr":{"id":"node_13","rel":"folder"},"data":"demo3","state":""}]string(140) "[{"attr":{"id":"node_8","rel":"folder"},"data":"_demo","state":"closed"},{"attr":{"id":"node_13","rel":"folder"},"data":"demo3","state":""}]" 

Используя декодирование Json, я получаю следующий вывод ..

Array ( [0] => Array ( [attr] => Array ( [id] => node_8 [rel] => folder ) [data] => _demo [state] => closed ) [1] => Array ( [attr] => Array ( [id] => node_13 [rel] => folder ) [data] => demo3 [state] => ) ) aArray

Как я могу перебирать и получать доступ к каждому значению в виде списка, чтобы я мог добавлять классы div и идентификаторы.Например, [id] => node_8.Как я могу получить доступ к этому значению и преобразовать его в div id = "node_8" или [rel] => папку, и преобразовать в div class = "folder".Например, я надеюсь, что это имеет смысл
, например

 foreach ($data as $key => $value){
    if(is_array($value)) {
    {

     echo $value . "<br />";
     }
    }
  } 

, который создает id = node_8 rel = данные папки = _demo состояние = закрытый id = node_13 rel = данные папки = состояние demo3 =

Я добавил ответ ниже, если у кого-то есть проблемы с многомерными массивами, а также с декодированием из JSON, добавлением div и т. Д. В массив.Любезно предоставлено Шаяном Хусаини.Где $ string равно массиву.

$json_a=json_decode($string,true);
foreach ($json_a as $value) {

echo '«;echo 'id:'. $ value ['attr'] ['id'];эхо«;echo 'rel:'. $ value ['attr'] ['rel'];эхо«;echo 'name:'. $ value ['data'];эхо«;echo ''. $ value ['state'];эхо '';

1 Ответ

3 голосов
/ 06 марта 2012

Ваш массив является многомерным массивом, поэтому вам также нужно определить ключи для дочерних массивов, чтобы получить значения.Я надеюсь, что это поможет вам:

foreach ($data as $value){
       echo 'id: '.$value['attr']['id'];
       echo 'rel: '.$value['attr']['rel'];
       echo 'demo: '.$value['demo'];
       echo 'state: '.$value['state'];
  } 
...