2014-02-27 106 views
0

所以我有这样的代码:PHP到Javascript数组麻烦

var loc = new Array(); 
     <?php foreach($loc as $key => $val) { ?> 
      loc.push('<?php print_r($val); ?>'); 
     <?php } ?> 

的问题是在于它的只显示一个值,而不是一个以上的,像它应该。这是PHP阵列代码:

$loc = array($lat, $long); 

任何帮助,非常感谢。

+1

['print_r'](http://php.net/print_r)仅用于***调试。这不适用于其他任何事情。 –

+1

你为什么使用'print_r()'?它仅用于显示阵列的格式化版本,并且不能用于从客户端<->服务器传输数据。请使用JSON格式,如下面的[Niet's answer](http://stackoverflow.com/a/22074343/)所示。 –

回答

9

试试这个:

var loc = <?php echo json_encode($loc); ?>; 

你不应该使用print_r。我引述documentation

print_r - 一个变量

注意我强调的部分打印人类可读信息。 “人类可读的”。只是因为它看起来有点像JavaScript可能理解的东西,并不意味着它);另一方面,json_encode专门用于输出JSON,这是JavaScript为变量接受的语法的子集。

+0

忍者。 +1因为速度快(同时是正确的)。 –

+0

我认为最好有一个简短的解释为什么给定的代码不起作用:) –

+1

@AmalMurali编辑。 –