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/>";
}
?>
结果如下:
二维数组就以及遍历就是按照上面的方法进行嵌套。