请问一个关于数组的简单问题

huawdai 2002-07-20 12:54:56
<?
$vararray = array(
"地支" => array("子", "丑", "寅", "卯"),
"生肖" => array("鼠", "牛", "虎", "兔"),
"数字" => array(1, 2, 3, array(4,5,6,7,8))
);

$test = array ();
$test["first"][] = $vararray;
//上面一行是什么意思呢?
//下面一行又是什么意思呢?
$test["first"][][] = $vararray;
?>

另外,最后的$test是数组的数组的数组呢,还是3维数组?
...全文
17 16 打赏 收藏 举报
写回复
16 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
LeeMaRS 2002-07-20
没必要分这么清楚啦.在PHP中分这么清楚没好处的.
  • 打赏
  • 举报
回复
rf_wu 2002-07-20
<?
//这个是散列表
$vararray = array(
"地支" => array("子", "丑", "寅", "卯"),
"生肖" => array("鼠", "牛", "虎", "兔"),
"数字" => array(1, 2, 3, array(4,5,6,7,8))
);
//这个是二维数组
$vararray = array(
array("子", "丑", "寅", "卯"),
array("鼠", "牛", "虎", "兔"),
array(1, 2, 3, 4)
);

?>
  • 打赏
  • 举报
回复
wasy 2002-07-20
好大一棵树,hehe:)
  • 打赏
  • 举报
回复
wasy 2002-07-20
好大一棵树,hehe:)
  • 打赏
  • 举报
回复
LeeMaRS 2002-07-20
呵呵~ 有点像:) 横着看就是DOS的树形结构:)
  • 打赏
  • 举报
回复
huawdai 2002-07-20
应该是树
:)
  • 打赏
  • 举报
回复
LeeMaRS 2002-07-20
呵呵,PHP的数组是非常灵活的,拿太死板的C/C++或是PASCAL的方法来套就容易想不通.别这样想~:)
  • 打赏
  • 举报
回复
huawdai 2002-07-20
我觉得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;
?>
  • 打赏
  • 举报
回复
LeeMaRS 2002-07-20
:) 你觉得真要这么理解我也不反对,不过在我眼中是一样的.特别是在不定义变量就可以使用的情况下.因为此时所有未使用到的变量均为0,同样是一个方阵.
  • 打赏
  • 举报
回复
huawdai 2002-07-20
LeeMaRS(小菜虎_水壶的仇人):

二维数组和 数组的数组 是有区别的啊:
1.二维数组的每一个元素都是一个具体的数或者字符;二维数组一定是一个(m X n)的方阵;
2.数组的数组事实上是一维数组,只不过这个一维数组的元素是数组;数组的数组却不一定是方阵
  • 打赏
  • 举报
回复
LeeMaRS 2002-07-20
呵呵,jyc_nj(老蔣) 说得有点不对:)
$test["first"][]是给第二维赋值,此时相当于$test["test"][0]=$vararray;
$test["first"]="乱789"是给一维赋值,对应形式是:
$test[]="乱789"
  • 打赏
  • 举报
回复
LeeMaRS 2002-07-20
呵呵,jyc_nj(老蔣) 说得有点不对:)
$test["first"][]是给第二维赋值,此时相当于$test["test"][0]=$vararray;
$test["first"]="乱789"是给一维赋值,对应形式是:
$test[]="乱789"
  • 打赏
  • 举报
回复
jyc_nj 2002-07-20
$test = array ();
先定义个数组.
$test["first"][] = $vararray;
再给数组的第一元素赋值,这和$test["first"] = "乱78糟"是一个道理,只不过,赋的又是个数组.
  • 打赏
  • 举报
回复
webmin 2002-07-20
$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 ) ) ) ) ) )

  • 打赏
  • 举报
回复
LeeMaRS 2002-07-20
<?
$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");
?>

套用我今天早上给你的程序 你看看就明白了.
  • 打赏
  • 举报
回复
LeeMaRS 2002-07-20
数组的数组的数组 和 3维数组 有区别吗? ^_^
  • 打赏
  • 举报
回复
相关推荐
发帖
基础编程
加入

2.1w+

社区成员

从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
申请成为版主
帖子事件
创建了帖子
2002-07-20 12:54
社区公告
暂无公告