0

我想生成一个 json 数组并将其存储在我的数据库中。我得到这些值并运行一个循环来生成。

当我对其进行编码时,我得到了 ArrayArrayArray

谁能看到我哪里出错了

for ($i=0; $i<=$sTotal;$i++){ 
    $layout_array .= array(array("cellID" => '"'. $_POST['cell_'.$i] .'"',"studentID" => $_POST['user_'.$i]),);
}
$layout_array .= array(array("cellID" => "null","studentID" => "null"));
$layout = json_encode($layout_array);
echo $layout;

干杯

4

2 回答 2

2

问题是您$layout_array是 a String,因为您正在使用.=(连接)。

代替:

$layout_array .= array(array("cellID" => '"'. $_POST['ce...

做:

$layout_array[] = array(array("cellID" => '"'. $_POST['ce....

并更改下一行:

$layout_array .= array(array("cellID" => "null","studentID" => "null"));

顺便说一句,为什么不使用serializeandunserialize而不是 json 编码?

编辑:为了您的舒适,链接到我建议的函数的 php 手册。

http://php.net/manual/en/function.serialize.php

http://php.net/manual/en/function.unserialize.php

于 2012-10-15T14:12:05.760 回答
0

您应该使用+=来加入您的阵列,而不是..

编辑:忽略此并查看评论。这会将元素添加到数组的当前范围,您应该将其$array[] = array(..)用作其他答案状态。

于 2012-10-15T14:12:28.537 回答