【问题标题】:Implement for foreach loop in javascript on Multi-dimensional arrays Issue在多维数组问题的 javascript 中实现 foreach 循环
【发布时间】:2013-08-08 09:24:14
【问题描述】:

我正在尝试在 Javascript 中实现 foreach PHP 循环
我的多维数组的 PHP 代码是:

echo json_encode($jsonPoly);
foreach( $jsonPoly as $Route => $cordArray) { 
    echo $Route.': ';
    echo implode(',',$cordArray);    
}

我的多维数组输出是:

{"Route1":["22.2740,70.8275"],
"Route2":["22.2739,70.8276"],
"Route3":["22.2739,70.8276"],
"Route4":["22.2739,70.8276"],
"Route5":["22.2731,70.8303","22.2879,70.8264","22.3027,70.8125","22.3067,70.8137","22.2973,70.8158","22.2936,70.8201","22.2848,70.8157","22.2815,70.8161","22.2803,70.8245","22.2739,70.8276"],"Route6":["22.2739,70.8277"]}<br>

这是我尝试用 javascript 打印它

var jsonPoly=new Array();                               
jsonPoly = '"<?php echo json_encode($jsonPoly); ?>"'; 
for(var Route in jsonPoly){
    // printing each "Route"
}


我的 for 循环有问题吗?还是在我的多维数组中?
我想得到一些建议。
谢谢!

【问题讨论】:

  • 那不是多维数组,那是一些属性值是数组的对象。

标签: php javascript json foreach


【解决方案1】:

要在 JavaScript 中获取值,您可以直接使用 json_encode 的输出:

jsonPoly = <?php echo json_encode($jsonPoly); ?>;

这会让你:

val = {"foo":"bar"};

对比:

val = '"{"foo":"bar"}"'; // this would need a JSON.parse

【讨论】:

  • 这不是我的问题,我想用 javascript 打印或获取每个路由,我写打印只是为了示例,假设我想将每个路由插入数组
  • 好吧,如果您想知道为什么没有得到任何输出。 for 循环看起来是正确的,请记住 Route 将指向 key 而不是值。要获得价值,请执行jsonPoly[Route]
  • 我一开始是这样做的,它给了我每个字符,就像 jsonPoly 是字符串一样
  • @OfirAttia:你会发现,如果你按照 Frits 告诉你的去做,你的代码就会神奇地开始工作。当您处理您认为正在处理的实际数据结构而不是字符串时,会发生什么令人惊讶。顺便说一句,在您的代码中删除= new Array();,因为您立即用该对象覆盖该数组。 另外请注意,JavaScript 中的 for-in 循环与 PHP 中的 foreach 循环不同。不过,这可能是您想要的。
  • 那是因为在你的代码中jsonPoly 一个字符串,这就是我发布这个答案的原因。
猜你喜欢
  • 2012-04-06
  • 2018-01-04
  • 2015-09-21
  • 2015-06-02
  • 2018-07-13
  • 2022-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多