json_encode只返回一个对象

时间:2012-09-05 09:22:28

标签: php html json

我将这段代码放在一个文件中

//declaring something
$array=array();
$arraylst=/*retrieve from database query and sure this contains the correct result*/
<?php 
if(!empty($array)):
?>
<div id="something">
<?php
$n=0;
foreach($arraylst as $key=>$val):
    $array="span".$n;
    //create a span and print out $val's property1  
    $n++;
endforeach;

$n=0;
foreach($array as $key=>$val):
    //create a span and print out $val's property2
    $n++;
endforeach;
</div>
<?php 
endif;
?>


<script language="javascript">
var arr=[<?php echo json_encode($array); ?>]
//do something else
</script>

我看到的屏幕输出只有一个“跨度”;也就是说,如果我的arraylst大小为3,我只能看到第一个跨度,因为我的数据库查询是按升序排序的。其余部分根本没有看到。

2 个答案:

答案 0 :(得分:0)

$array="span".$n;用字符串覆盖数组。

使用array_push( $array, "span$n" );将项添加到数组中。

(然后,您要删除[周围的]json_encode,因为$array中有一个数组。

答案 1 :(得分:0)

您始终设置为$ array。

$array="span".$n;

您不添加到您将设置数组的数组添加到该值。

使用:

$array[] ="span".$n;