php的数组的定义
<?php //php中定义数组时可以通过索引直接进行赋值: $mArr[0]="哈哈"; $mArr[1]=70; $mArr[2]='haha'; echo "下面输出的是mArr:<br/>"; var_dump($mArr); echo "<br/>"; //也可以直接赋值,php会从0自动编码 $kArr[]="哈哈"; $kArr[]=70; $kArr[]='haha'; echo "下面输出的是kArr:<br/>"; var_dump($kArr); echo "<br/>"; //还可以这样写 $rArr[5]="哈哈"; $rArr[]=70; $rArr[]='haha'; echo "下面输出的是rArr:<br/>"; var_dump($rArr); echo "<br/>"; ?>
结果:
但如果定义了两个相同的索引,那前面那个值将会被覆盖掉。可以自己尝试一下。
数组的遍历:
foreach();
php的数组遍历可以通过for和while循环进行遍历,还可以有foreach进行,表达式有两种,分别是:
foreach(数组名 as 元素名){
语句块;
}
或者:
foreach(数组名 as 键名 => 元素名){
语句块;
}
两个有些不同,可以通过下面的例子看出:如果数组是键值对的话只能将数组中的键值对的值获取到,第二种方法是可以将key也获取到。
eg:
<?php $name = array('张三' => '姓张','李四'=>'姓李','王二'=>'姓王','赵一'=>'姓赵'); foreach ($name as $value) { echo "第一次的结果::".$value."<br/>"; } foreach ($name as $key => $value) { echo "第二次的结果::"."key的值是:"."$key".",并且value的值为:"."$value<br/>"; } ?>
结果是:
list()进行遍历数组
list()并不是真正的函数,和array[]一样,是一种语言结构,list()只能用于下标从0开始的索引数组。
void list(mixed $var , mixed $...)
eg:
<?php $mArr=["张三",20,'男','1998年出生']; list($name,$age,$sex) = $mArr; echo $name.' '.$age.' '.$sex; ?>
结果:
可以看出list()是直接取得mArr的从下边为了、0开始的前三个值
each()遍历数组
each()用于返回数组中当前的键值对,并将数组指针向前移动一步。语法格式:
array each(array $var);
eg:
<?php $mArr=["张三",20,'男','1998年出生']; $arr = each($mArr); echo "<br/>"; var_dump($arr); $arr = each($mArr); echo "<br/>"; var_dump($arr); $arr = each($mArr); echo "<br/>"; var_dump($arr); $arr = each($mArr); echo "<br/>"; var_dump($arr); ?>
结果为:
返回4个单元的数组,键名为0、1、key、value。单元0和key包含数组的键名,1和value办函数组元素的值如果指针越界,则each()返回FALSE。
混合使用list()与each()遍历数组:
eg:
<?php $mArr=["张三",20,'男','1998年出生']; while (list($key,$value) = each($mArr)) { echo $key."=>".$value; echo "<br/>"; } ?>
结果如下:
二维数组就以及遍历就是按照上面的方法进行嵌套。