2012-09-05 51 views
0

我有这一段代码在一个单一的文件json_encode仅返回一个对象

//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,我只能看到第一个跨度,因为我的数据库查询按递增排序。其余的都没有看到。

回答

0

$array="span".$n;用字符串覆盖数组。使用array_push($array, "span$n");将项目添加到数组。

(然后您将从json_encode附近删除[],因为您将在$array中有一个数组)。

+0

谢谢,我固定的,但我仍然得到同样的错误影响 –

0

你总是设置值“span”为$ array。

$array="span".$n; 

你不添加它给你设置数组中该数值的阵列。

用途:

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