正如其他人所指出的,
我有一个二维javascript数组,我想将其分配给php数组。
我尝试了以下操作,但没有成功:
var js_array= [[]];
js_array = <?php echo $result;?>;
我基本上已经创建了一个二维php数组,并将其分配给一个二维javascript数组。
我在这段代码中似乎看不到任何逻辑问题。有人能指出为什么这种方法可能不起作用吗?
谢谢。
不能echo
一个数组,只能是一个字符串。看看PHP中的json_encode
函数:http://us2.php.net/json_encode你会发现这是你想要的。
var js_thing = <?php echo json_encode($result);?>;
var js_array= [];
js_array = <?php echo json_encode($result);?>;
尝试json_encode
json_encode
是一个不错的选择。然而,您在JS中收到的对象并不完全是一个数组。这个问题的答案向您展示了如何使用它。
这应该可以做到。
<script type="text/javascript">
<?php
$arr = array(
array(1,2,3,4,7),
array(5,3,6,8),
array(0,12,34,54,65)
);
$arr_str = '[';
foreach ($arr as $mv) {
$arr_str .= '[';
foreach ($mv as $sv) {
$arr_str .= $sv.',';
}
$l = strlen($arr_str);
if(substr($arr_str, -1) == ','){
$arr_str = substr($arr_str, 0, $l-1);
}
$arr_str .= '],';
}
$l = strlen($arr_str);
if(substr($arr_str, -1) == ','){
$arr_str = substr($arr_str, 0, $l-1);
}
$arr_str .= '];';
?>
var js_a =<?php echo $arr_str; ?>
这是一条艰难的路。。可能很糟糕..;)