php 定义二维数组 并循环箱二维数组赋值 不知道我这样写程序对不对 请高人指点

我的程序如下:
$szx=array(); //我想定义两个二维数组 szx 和szy
$szy=array();
for($i=0;$i<2;i++) //用for循环对他们赋值
{
$j=$i+1;
$sql6="select x,y from data ;"; //从数据库取出数据
$res6=mysql_query($res6);
while($row6=mysql_fetch_array($res6))
{
array_push($szx[i][], $row['x']); //分别放入这两个二维数组的第i行
array_push($szy[i][], $row['y']);
$arrxjs=json_encode($szx); //然后我想直接把它转成json_encode 以便以后赋给js的二维数组
$arryjs=json_encode($szy);
}
}

因为之后还有很多其他的程序 所以我不知道错误出在哪里 所以想请前辈看下这样写对不对 先谢啦

你例子中的代码我并没有看出有什么需要二维数组的地方,两个一维数组就行了啊。我写给你看一下

$szx = array();
$szy = array();
$sql = "select x, y from data";
$res = mysql_query($sql);
while($row = mysql_fetch_array($res)) {
    $szx[] = $row['x'];
    $szy[] = $row['y'];
}
$arrxjs = json_encode($szx);
$arryjs = json_encode($szy);


至于你的代码的问题如下

    $sql6="select x,y from data ;"; 里面最好不要有分号, $sql6 = "select x,y from data";就行了

    mysql_query($sql6); 你写成了mysql_query($res6)

    $szx[i][] 应该修改为 $szx[$i][];

    array_push($szx[$i], '值') 和 $szx[$i][] = '值' 是等价的,因此你连用它们会导致$szx变成三维数组,正确为array_push($szx[$i], $row['x'])或者$szx[$i][] = $row['x'];

    $arrxjs和$arryjs只要在while循环外执行一次就行了

    for循环没什么意义吧,我没看到你使用$j啊。或者你贴的代码不全

追问

对对 我没贴全代码
$sql6="select x,y from data where imei='$im' and timestamp='$zero_point[$j]' order by timestamp desc";这就是我没贴全的地方 我嫌它太长了 结果忘了还有$i $j 其他地方我照您说的改了 多谢提点啊

追答

哦,不客气

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-27
不知道你的二维数组是什么样的,但是array_push($szx[i][], $row['x']); 你的这个地方写错了。

[i][]两个中括号里面必须都有数字,而且应该是$i,而不是i.

你可以换成:
$szx[$i][$j]=$row['x'];
$szy[$i][$j]=$row['y'];,
这样就是一个二维的数组,你把$i,和$j改一下就可以了本回答被提问者采纳