将php数组变量的值存储到javascript数组变量中

时间:2013-07-15 02:56:45

标签: php javascript google-maps-api-3

我有一些问题,如何将php数组变量的值存储到javascript数组变量,因为我想在javascript中操作数据 这是我的代码

<?php  
$coor= array('-7.175993,112.650729|-7.17616,112.651139|-7.176591,112.650968|-7.176413,112.650552|-7.176104,112.650437','-7.176331,112.649924|-7.17632,112.650053|-7.176629,112.650048|-7.176629,112.649914');
?>

我想将所有值从$ coor存储到var allcoor = new Array(),我一直在尝试的是使用json_encode

<script>
var allcoor=new Array();
allcoor = "<?php foreach ($cobadeh as $t){echo json_encode($t);} ?>";
//for some example of manipulation array variable javascript
mySplitResult = allcoor[0].split("|");
...
</script>

我想要的是javascript数组变量的操作,并且该代码不起作用,任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:1)

你需要从一个镜像你想要的javascript数组的php数组开始。然后在该数组上输出json_encode的结果。

为此,我假设你想要一个数组数组。

<?php
$coorStr = "-7.175993,112.650729|-7.17616,112.651139|-7.176591,112.650968|-7.176413,112.650552|-7.176104,112.650437','-7.176331,112.649924|-7.17632,112.650053|-7.176629,112.650048|-7.176629,112.649914";
$coor= explode("|",$coorStr);
$coor = array_map(function($a) { return explode(",", $a); }, $coor);
?>
allcoor = <?php echo json_encode($cobadeh); ?>;

第一个explode命令将字符串拆分为包含每个坐标对的元素数组。

array_map调用拆分数组中的每个元素。

最后,json_encode为javascript赋值正确格式化数据。

因为变量是一个php数组,你想把它作为一个javascript数组

答案 1 :(得分:1)

首先在php端创建一个数组

$coor='-7.175993,112.650729|-7.17616,112.651139|-7.176591,112.650968|-7.176413,112.650552|-7.176104,112.650437','-7.176331,112.649924|-7.17632,112.650053|-7.176629,112.650048|-7.176629,112.649914';

$corar = explode("|", $coor);

然后在javascript方面你可以做

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