7.part5-2day php数组和数组函数
学习目的:一个变量存储多个数据
一、数组
在前面的数据类型中我们讲到过数组,数组是一个能够在单个变量中存储多个值的特殊变量。
在php中用array()函数创建数组,php中的数组有三种类型:数字索引数组(索引值从0开始),关联数组(键值对的形式),多维数组(由一维数组组成),具体例子如下:
<?php $car1 = '奔驰'; $car2 = '福特'; $car3 = '丰田'; //数字索引数组 $car3 = array('奔驰', '福特', '丰田'); //关联数组 $car4 = array( '德国' => '奔驰', '美国' => '福特', '日本' => '丰田' ); //可以先创建个空数组后插入数据 $car5 = array(); $car5[] = '奔驰'; $car5[] = '福特'; $car5[] = '丰田'; $car6 = array(); $car6['德国'] = '奔驰'; $car6['美国'] = '福特'; $car6['日本'] = '丰田'; //计算数组长度 $arrLength = count($car3); //遍历用for或foreach for ($i = 0; $i < $arrLength; $i++) { echo $car3[$i] . '<br>'; } foreach($car3 as $key => $value) { echo '第' . ++$key . '个的值为' . $value . '<br>'; } foreach($car4 as $key => $value) { echo $key . '的' . $value . '<br>'; } //多维数组以二维数组为例,就是一维数组里再套一个一维数组 $car7 = array( array( 'name' => '奔驰', 'price' => '80' ), array( 'name' => '福特', 'price' => '40' ), array( 'name' => '丰田', 'price' => '60' ) ); ?>
二、数组函数
1.count(); 返回数组的长度
2.sort(); 对数组进行升序排列
3.rsort(); 对数组进行降序排列
4.asort(); 根据关联数组的值,对数组进行升序排列
5.ksort(); 根据关联数组的键,对数组进行升序排列
6.arsort(); 根据关联数组的值,对数组进行降序排列
7.krsort(); 根据关联数组的键,对数组进行降序排列
(注:排序顺序:字母按照a~Z, 数字就是0~9)
8.array_combine($arr1, $arr2); 合并数组,第一个参数的数组内的数据为新数组的键名,第二个参数的数组内的数据为新数组的键值
9.array_merge($arr1, $arr2); 把一个或多个数组合并为一个数组,如果合并的数组由相同的键名,则最后的元素会覆盖其他元素
10.array_merge_recursive($arr1, $arr2); 把一个或多个数组合并为一个数组,如果合并的数组由相同的键名,不会覆盖其他元素
11.array_diff($arr1, $arr2); 比较数组,返回两个数组的差集(只比较键值)
12.array_diff_assoc($arr1, $arr2); 比较数组,返回两个数组的差集(比较键名和键值)
13.in_array('奔驰', $car3); 搜素数组中是否存在指定的值
14.array_pop($arr1); 出栈,删除数组中的最后一个元素,返回值是被删除的变量
15.array_push($arr1, '本田', '宝马'); 入栈,向数组的后面添加变量,返回值是新数组的元素的个数
16.array_reverse($arr1); 将原数组中的元素顺序翻转,创建新的数组并返回
17.array_search('奔驰', $car3); 在数组中搜索某个键值,并返回对应的键名
18.array_shift($car3); 删除数组中的第一元素,并返回被删除的元素
19.array_unique($car3); 删除数组中的重复值,返回过滤后的数组
20.array_slice($arr, '2', '2'); 返回数组中的选定的部分,参数1是数组,参数2是从哪里开始选取,参数3是选取的长度(0是第一个元素,如果是正数从前往后取,如果是负数从后往前去,取绝对值)
21.array_splice($arr1, 0, 2, $arr2); 从数组中移除选定的元素,并用新元素取代它,函数返回被移除元素的数组,参数1是数组,参数2是从哪里开始选取,参数3是选取的长度(0是第一个元素,如果是正数从前往后取,如果是负数从后往前去,取绝对值),参数4可选,可以替也可以不替