一、数组的初始化
PHP中的数组分为数字索引数组和非数字索引数组 。
对于数字索引,直接将键值传入array()括号中即可。注意,一个数组中的键值可以是任意数据类型。
访问数字索引数组,直接用数组名加中括号,中括号里面放要访问的元素的数组索引
<?php
$a = array(1,2,'wewe');
echo $a[0].$a[1].$a[2];
//同时我们也可以这样
$b = array();
$b[0] = 1;
$b[1] = "w";
echo $b[0].$b[1];
?>
对于非数字索引数组,可以用两种方法完成初始化
①$key=>$vale
加入到array()函数里
②声明一个空数组,一项项初始化。
这种方法当然也适用于数字索引,同时我们也可以看出,PHP的数组可以动态增加。
$b=array('name'=>'wanghao','gender'=>'male');
$b = array();
$b['name'] = 'wanghao';
$b['gender'] = 'male';
二、使用循环语句访问数组
①下标循环
<?php
$a = array(1,3,'w');
for($i=0;$i<3;$i++)
echo $a[$i];
?>
②foreach循环
$a = array('key1'=>'value1','key2'=>'value2','key3'=>'value3');
//对关联数组遍历输出
foreach($a as $key=>$value){
echo $key.":".$value;
}
③使用each循环
each()函数返回数组的当全元素,并将下一元素作为当前元素。
$a = array('key1'=>'value1','key2'=>'value2','key3'=>'value3');
//对关联数组遍历输出
while($element = each($a))
{
each $element['key'].":".$element['value'];
}
④list()与each()结合,实现key和value的分离:
$c = array('name'=>'wanghao','gender'=>'male');
//下面的$n $f分别接收每次each()传出的$key和$value
while(list($n,$f) = each($c)){
echo $n."<br>";
echo $f."<br>";
//随后输出 name:wanghao
// gender:male
}
三、多维数组
下面是一个使用多维数组的例子:
$student = array(
array('wang',15,'boy'),
array('Li',15,'Gril'),
array('Tu',21,'Gril')
)
访问上面二维数组的每一个元素,可以用如下两个方法:
//使用下标访问
echo $student[0][0].$student[0][1].$student[0][2].$student[1][0].$student[1][1].$student[1][2].$student[2][0].$student[2][1].$student[2][2];
//使用循环访问
for($i = 0;$i<3;$i++)
for($j=0;$j<3;$j++)
echo $student[i][j];
四、其他关于数组的tips
- 使用sort()。sort()函数将数组按字母升序排序。如果数组的键值是数字的话,按大小排序。
- count()和sizeof()函数对数组元素个数进行统计。
- array_count_values()函数统计每个特定的值在数组中出现的次数(数组的基数集)。最后返回的是一一个包含频率表的关联数组。
$myArray = array(1,2,'erere',1,1,2,'erere','12',1,1,2);
$ac = array_count_values($myArray);
while(list($value,$count) = each($ac)){
echo $value.": ".$count."<br>";
运行结果如下: