<?
$vararray = array(
              "地支" => array("子", "丑", "寅", "卯"),
              "生肖" => array("鼠", "牛", "虎", "兔"),
              "数字" => array(1, 2, 3, array(4,5,6,7,8))
            );function DG ($var,$name)
{
  echo "<dl>";
  echo "<dt>遍历数组\"$name\"";
  while (list($key,$value)=each($var))
  {
    if (is_array($value))
    {
      DG($value,$key);
    }
    else
      echo "<dd>$key => $value";
  }
  echo "</dl>";
}$test = array ();
$test["first"][] = $vararray;
//上面一行是什么意思呢?
//答:这一行的意思是为$test["first"]再添一个数组元素,值为$vararray
//下面一行又是什么意思呢?
$test["first"][][] = $vararray;
//答:为test["first"]新添一个数组元素,为新添的数组元素再新添一个数组元素.(舌头打结了,@_@)DG($test,"test");
?>套用我今天早上给你的程序 你看看就明白了.

解决方案 »

  1.   

    $test["first"][] = $vararray;是把$vararray的值赋给$test["first"][X]
    这时$test的值如下:
    Array ( [first] => Array ( [0] => Array ( [地支] => Array ( [0] => 子 [1] => 丑 [2] => 寅 [3] => 卯 ) [生肖] => Array ( [0] => 鼠 [1] => 牛 [2] => 虎 [3] => 兔 ) [数字] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => Array ( [0] => 4 [1] => 5 [2] => 6 [3] => 7 [4] => 8 ) ) ) ) )
     
    $test["first"][][] = $vararray;是把$vararray的值赋给$test["first"][X+1][0]
    这时$test的值如下:
    Array ( [first] => Array ( [0] => Array ( [地支] => Array ( [0] => 子 [1] => 丑 [2] => 寅 [3] => 卯 ) [生肖] => Array ( [0] => 鼠 [1] => 牛 [2] => 虎 [3] => 兔 ) [数字] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => Array ( [0] => 4 [1] => 5 [2] => 6 [3] => 7 [4] => 8 ) ) ) [1] => Array ( [0] => Array ( [地支] => Array ( [0] => 子 [1] => 丑 [2] => 寅 [3] => 卯 ) [生肖] => Array ( [0] => 鼠 [1] => 牛 [2] => 虎 [3] => 兔 ) [数字] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => Array ( [0] => 4 [1] => 5 [2] => 6 [3] => 7 [4] => 8 ) ) ) ) ) ) 
      

  2.   

    $test = array ();
    先定义个数组.
    $test["first"][] = $vararray;
    再给数组的第一元素赋值,这和$test["first"] = "乱78糟"是一个道理,只不过,赋的又是个数组.
      

  3.   

    呵呵,jyc_nj(老蔣) 说得有点不对:)
    $test["first"][]是给第二维赋值,此时相当于$test["test"][0]=$vararray;
    $test["first"]="乱789"是给一维赋值,对应形式是:
    $test[]="乱789"
      

  4.   

    呵呵,jyc_nj(老蔣) 说得有点不对:)
    $test["first"][]是给第二维赋值,此时相当于$test["test"][0]=$vararray;
    $test["first"]="乱789"是给一维赋值,对应形式是:
    $test[]="乱789"
      

  5.   

    LeeMaRS(小菜虎_水壶的仇人):二维数组和 数组的数组 是有区别的啊:
    1.二维数组的每一个元素都是一个具体的数或者字符;二维数组一定是一个(m X n)的方阵;
    2.数组的数组事实上是一维数组,只不过这个一维数组的元素是数组;数组的数组却不一定是方阵
      

  6.   

    我觉得php里面的数组根本就不是一般意义上的数组。比如
    <?
    $vararray = array(
                  "地支" => array("子", "丑", "寅", "卯"),
                  "生肖" => array("鼠", "牛", "虎", "兔"),
                  "数字" => array(1, 2, 3, array(4,5,6,7,8))
                );
    $test = array ();
    $test["first"][] = $vararray;
    //到这里似乎说明$test是数组的数组,(或者说二维数组),那么任意的$test[]的元素都应该是一个数组。可是下面的代码又是对的
    $test["second"] = "second";
    $test["third"] = 33333;
    $test[] = 4444;
    ?>
      

  7.   

    呵呵,PHP的数组是非常灵活的,拿太死板的C/C++或是PASCAL的方法来套就容易想不通.别这样想~:)
      

  8.   

    呵呵~ 有点像:) 横着看就是DOS的树形结构:)
      

  9.   

    <?
    //这个是散列表
    $vararray = array(
                  "地支" => array("子", "丑", "寅", "卯"),
                  "生肖" => array("鼠", "牛", "虎", "兔"),
                  "数字" => array(1, 2, 3, array(4,5,6,7,8))
                );
    //这个是二维数组
    $vararray = array(
                  array("子", "丑", "寅", "卯"),
                  array("鼠", "牛", "虎", "兔"),
                  array(1, 2, 3, 4)
                );?>
      

  10.   

    没必要分这么清楚啦.在PHP中分这么清楚没好处的.