2016-04-14 32 views
0

我有這個PHP數組:的jQuery遍歷PHP數組顯示內容多次

Array 
(
    [0] => Array 
     (
      [name] => Name1 
      [schedule] => Array 
       (
        [0] => Array 
         (
          [attractie] => Hey 
          [start] => 0930 
          [end] => 1200 
         ) 

        [1] => Array 
         (
          [attractie] => There 
          [start] => 1300 
          [end] => 1400 
         ) 

       ) 

      [link] => link 
      [color] => 964d11 
     ) 

    [1] => Array 
     (
      [name] => Name2 
      [schedule] => Array 
       (
        [0] => Array 
         (
          [attractie] => Hey 
          [start] => 1200 
          [end] => 1530 
         ) 

        [1] => Array 
         (
          [attractie] => There 
          [start] => 1000 
          [end] => 1100 
         ) 

       ) 

      [link] => link 
      [color] => e49fca 
     ) 

) 

我的目標是讓color值,所以我寫了這個循環:

var orders = <?php echo json_encode($myOrders); ?>; 
jQuery.each(orders, function(key, value) { 
    console.log(value.color); 
}); 

現在我期待結果是這樣的:

964d11 
e49fca 

但結果是actualy這樣的:

964d11 
e49fca 
964d11 
e49fca 
964d11 
e49fca 
964d11 
e49fca 

任何人都知道這裏發生了什麼? 非常感謝提前!

+0

您應該先將'PHP Array'轉換爲'JavaScript Array'並遍歷以獲得更好的結果。 –

+0

我試過你的代碼,它也給出了慾望輸出。在PHP 5.5.12中爲我工作得很好。只要我複製並粘貼到我的本地併爲我工作。 – RJParikh

+0

@RuchishParikh嗯很奇怪:/ –

回答

0

這應該如預期的那樣工作,您是否嘗試過使用console.log(this.color);

否則,你可以試試這個替代方案:

for(var i = 0; i < orders.length; i++){ 
    console.log(orders[i].color); 
} 
0

試試這個

var orders_json = '<?php echo json_encode($myOrders); ?>'; 
var orders = jQuery.parseJSON(orders_json); 
jQuery.each(orders, function (key, value) { 
    console.log(value['color']); 
}); 
0

請嘗試以下代碼

var eachOrders = <?php echo json_encode($myOrders); ?>; jQuery.each(eachOrder, function(key, value) { console.log(value[key][color]); });

希望這將工作