上期我们讲到了数组,数组是个特殊的变量,在程序中的重要程度很高,大部分数据处理的时候会用到这种特殊的变量,那么现在让我们继续深入一下吧。
上期我们打印出了数组的值,用print_r()或者var_dump()这俩函数,在本期中会涉及到用循环输出数组的所有元素,和用特定的key值来获取指定元素
一、获取数组指定元素
1、一维数组
数值数组
$cars=array("Volvo","BMW","Toyota");
如果我们想取出某个元素 那么我们可以用数组名+下标(key)的方式
因为是数值数组所以key必须是整数例如 0,1,2
语法:
$cars[num]
示例
如果我们想取得数组内第一个元素的值
echo $cars[0];
结果:Volvo
关联数组
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
如果我们想取出某个元素 那么我们可以用数组名+下标(key)的方式
关联数组每个值有固定的key
语法:
$age["key"]
示例:
如果我们想取得下标(key)为Peter的值
$age["Peter"]
结果:35
2、 多维数组
上期我们讲了多维数组的概念
语法:
1、数值数组
array (
array (elements...),
array (elements...),
...
)
所以我们想取某个元素时根据上图中就可以获取到
<?php
// 二维数组:
$cars = array
(
array("Volvo",100,96),
array("BMW",60,59),
array("Toyota",110,100)
);
?>
比如我们想取得$cars数组中第一个数组中的第二个元素
$cars[0][1]
输出:100
2、关联数组
语法:
array (
"key1"=> array (elements...),
"key2"=> array (elements...),
...
)
示例:
<?php
// 二维数组:
$cars = array
(
"Volvoinfo"=> array("Volvo",100,96),
"BMWinfo"=>array("BMW",60,59),
"Toyotainfo"=>array("Toyota",110,100)
);
?>
比如我们想取得 ”Volvoinfo“中的第一个元素
$cars["Volvoinfo"][0]
结果Volvo
二、遍历数组
上期我们讲到数组有 ,数值数组、关联数组、多维数组
现在有两种方式遍历数组
- for循环遍历
- foreach循环遍历
1、for循环遍历
用for循环遍历的话一般只用于遍历数值数组,for循环的参数咱们应该还记得吧
语法
for(初始值,条件,增量){
}
那咱们怎么确定用于循环的参数呢呢?
- 初始条件,因为数值数组的ID值是从0开始的(上期有讲)所以当循环数值数组时初始值维0
- 条件,我们循环不可能无限循环,当数组内的元素被全部遍历之后那么循环就该停止,所以数组的长度,或者说数组内元素的个数就是咱们判断的条件,当循环次数大于数组的长度(个数)时,停止循环
示例:
<?php
//定义数组
$cars=array("Volvo","BMW","Toyota");
//获取数组长度
$arrlength=count($cars);
//开始循环
for($x=0;$x<$arrlength;$x++)
{
echo $cars[$x];
echo "<br>";
}
?>
输出:
Volvo
BMW
Toyota
本期会讲关于数组的一些相关函数,获取数组长度的函数也会包括在内
2、foreach循环遍历
foreach循环不管是关联数组还是数值数组都可以用,也是遍历循环中最常用的
语法:
foreach($array as $key=>$val){
}
foreach循环就不用判断数组的长度,当数组内的元素被循环遍历完成之后就会停止循环比较省心
示例:
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "<br>";
}
?>
三、数组基本函数
- count()用于对数组或 Countable 对象中的所有元素进行计数
- array_push()将一个或多个单元压入数组的末尾(入栈)
- array_pop() 弹出数组最后一个单元(出栈)
- array_shift()将数组开头的单元移出数组
- array_unshift()在数组开头插入一个或多个单元
- array_slice()从数组中取出一段
- array_merge()合并一个或多个数组
- array_key_exists()检查数组里是否有指定的键名或索引
- array_search()在数组中搜索给定的值,如果成功则返回首个相应的键名
我都把相应函数的详细信息添加了超链接,大家可以点击跳转到官方网站(英语好的自行阅读,英语不好的,在网页 右击-》翻译为中文)
预告
下期讲 对象