多维数组:<?php
$fruits = array ( "fruits"  => array ( "a" => "orange",
                                       "b" => "banana",
                                       "c" => "apple"
                                     ),
                  "numbers" => array ( 1,
                                       2,
                                       3,
                                       4,
                                       5,
                                       6
                                     ),
                  "holes"   => array (      "first",
                                       5 => "second",
                                            "third"
                                     )
                );// Some examples to address values in the array above
echo $fruits["holes"][5];    // prints "second"
echo $fruits["fruits"]["a"]; // prints "orange"
unset($fruits["holes"][0]);  // remove "first"// Create a new multi-dimensional array
$juices["apple"]["green"] = "good";
?> 
可以看看手册

解决方案 »

  1.   

    你按数组访问了一个不是数组的数组成员$data_array=array($total,2);//其中$datarows为查询得到的记录数
    $data_array[$i][2]=$Area;//提示错误:Cannot use a scalar value as an array当$data_array=array($total,2)后
    $data_array是一个两个元素的一维数组
    $data_array Array (
    [0] => $datarows,
    [1] => 2
    )
    而不是二维数组,而后的
    $data_array[$i][2]=$Area中$i为0,因为才开始
    你实际是在访问$data_array[0][2]
    但前面已经令$data_array[0] = $datarows了,所以要报错你只要去掉对数组$datarows的声明就可以了
      

  2.   

    谢谢: xuzuning(唠叨) 和 52juanjuan(Fibona) 
    是这样:我想定义一个型如下的数组:
    1,1
    1,2
    ////
    2,1
    2,2
    ////
    3,1
    3,2
    ....
    //////就是为2列,而行为N的二维数组。定义一个二维的数组。如何定义?
    $data_array=array[3,2];//这样行吗?先假设是3行2列
    sql语句....
    得到查询的记录数,total
    重新定义二维数组,因为total是动态的,所以这次重新定义是动态的。如何重新定义?
    $data_array=array[$total,2];//就是$total行,2列了。重新定义。这样写是否可以?
    $i=0;
    while($result=$db->fetch_array($query))
    {
      $Role_name=$result["Role_name"];
      $Area=$result["Area"];
      $data_array[$i][1]=$Role_name;  //出错!
      $data_array[$i][2]=$Area;       //出错!
      $i=$i+1;}但出错
      

  3.   

    看来你没有明白啦
    不需要定义的//$data_array=array[$total,2];//就是$total行,2列了。重新定义。这样写是否可以?
    //最多
    $data_array = array();$i=0;
    while($result=$db->fetch_array($query))
    {
      $Role_name=$result["Role_name"];
      $Area=$result["Area"];
      $data_array[$i][1]=$Role_name;  //出错!
      $data_array[$i][2]=$Area;       //出错!
      $i=$i+1;
    }所有的行列都会自动生成的,这也是php最好的地方之一
      

  4.   

    肯定是你其他地方写的不对,先不要写入数组,echo出来看看
      

  5.   

    xuzuning(唠叨) ,问题搞定了啦。PHP数组功能真是大,行列都会自动生成!