размещение многомерного массива в Javascript из PHP с использованием JSON - PullRequest
3 голосов
/ 05 февраля 2011

Мой скрипт php отправляет обратно строку в кодировке JSON.

Я просто заблудился о том, как на самом деле использовать массив, теперь он прекрасно расположен в Javascript?

Конечной целью является циклический просмотр многомерного массива в JavaScript для извлечения значений (цен) ...

Мне удалось заставить JavaScript получать закодированную строку (проверено печатью на экране), но я не уверен, как на самом деле я могу использовать массив, или как я бы прошел через него, как в PHP ..

Мне нужно сделать JavaScript-код, эквивалентный этому PHP-коду

 foreach ($array as $item => $value){

    foreach ($value as $item2 => $value2){

      //peform action on $value2;
    }
}

Спасибо за любую помощь.

Oz

Ответы [ 2 ]

2 голосов
/ 05 февраля 2011

Если вы назвали переменную arrayFromPhp, вы можете использовать простой вложенный цикл for:

for(var i = 0, l = arrayFromPhp.length; i < l; i++) {
  for(var j = 0, l2 = arrayFromPhp[i].length; j < l2; j++) {
    var value = arrayFromPhp[i][j];
    //Do stuff with value
  }
}
2 голосов
/ 05 февраля 2011

Используя jquery, вы можете перебирать объект json следующим образом:

$.each(obj, function(key, value) {
    if ($.type(value) == "object") {
       $.each(value, function(key, value) {
           // value would be $value2 here
       })
    }
});

Кроме того, если вы получаете строку в кодировке json из PHP, вы можете использовать http://api.jquery.com/jQuery.parseJSON/, чтобы получить объект json

var obj = jQuery.parseJSON(stringFromPhp);

Вы также можете напрямую использовать $ .getJSON () (http://api.jquery.com/jQuery.getJSON/), чтобы автоматически получить объект json в обратном вызове.

редактировать: скобки отсутствовали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...