在 PHP5 中使用 array()
函数创建声明一个数组:
$arr = array('one', 'two', 'three');
其数组的类型有三种:
- 数值数组: 带有数字 ID 键的数组。
- 关联数组: 带有指定的键的数组(每个键关联一个值)。
- 多维数组: 包含一个或多个数组的数组(二三维)。
在开始谈三种数组类型前,先来看一下如何获取数组长度。在 PHP5 中并不是使用 .length
获取,因为 PHP5 中数组不是对象(Object)。
使用 count()
函数来统计数组并返回长度:
# 声明
$arr = array('one', 'two', 'three');
# 返回长度
echo count($arr);//3
一、数值数组
其实就是普通的数组,即 自动分配 ID 键(从 0 开始) :
# 自动分配 ID 键
$arr = array('one', 'two', 'three');
# 手动手配 ID 键
$arr[3] = 'four';
二、关联数组
所谓关联数组,指的是你 分配给数组的指定的键 的数组,有点类似对象的键值对。
# 第一种方式
$arr = array('one' => '1', 'two' => '2');
# 第二种方式
$arr['one'] = '1';
$arr['two'] = '2';
三、多维数组
简单来说就是 数组中嵌套数组,它包含一个或多个数组的数组。
# 多维数组
$arr = array(
array('one'),
array('two'),
array('three')
);
# 格式化数组显示
print '';
print_r($arr);
打印结果: 通过观察数组维度,然后以索引下标方式访问。二维数组需要两个索引来选取元素,反之亦然:
# 二维数组
$arr = array(
array('one'),
array('two'),
array('three')
);
# 选取 'two' 元素
echo $arr[1][0];//two
同样,三维数组则需要 array[一维下标][二维下标][三维下标]
选取元素。
遍历数组的需求很常见,下面我们分别遍历三种数组类型。
使用 for
循环来遍历【数值数组】:
# 数值数组
$arr = array('one', 'two', 'three');
# 遍历
for($i = 0; $i $value){
echo '索引:' . $key . '——————' . '值:' .$value;
}
// 索引:0——————值:one索引:1——————值:two索引:2——————值:three
使用 foreach
来遍历【关联数组】(注意:PHP5 的 foreach 会拷贝数组建立副本):
语法:foreach($数组变量 as [$下标=>] $值){}
解释:通过 $下标
访问元素下标,通过 $值
访问元素值。
[$下标 =>] 是可选参数。视情况而定。比如关联数组就需要,而数字数组就不需要。
# 关联数组
$arr = array('one' => '1', 'two' => '2');
# 遍历数组
foreach($arr as $key => $value){
echo '键:' . $key . '—————' . '值:' . $value;
}
// 键:one—————值:1键:two—————值:2
通过 嵌套foreach
遍历多维数组,说白了就是逐层遍历:
# 二维数组
$arr = array(
0 => array('name' => 'Vue'),
1 => array('name' => 'React'),
);
# 1. 首先遍历一维数组
# 2. 然后再遍历二维数组
# 注意:如果是三维以上则再次嵌套即可(但不建议三层以上)
foreach($arr as $value){
foreach($value as $value2){
echo $value2 . '';
}
}
// Vue
// React
如果你想了解遍历原理,请访问:https://wangjiabin.blog.csdn.net/article/details/104379573
副本使用 foreach
遍历数组时,其实系统为我们建立了一个副本,遍历的结果 不会影响到原数组。
# Array
$arr = array(1,2,3);
# 遍历
foreach($arr as $value){
$value += 1;//尝试改变
echo $value;//234
}
# 查看是否改变了元素组
print '';
print_r($arr);