数组有如下几种定义形式
形式1:
形式2:
$arr2 = [单元1,单元2,…];
单元(元素)的形式为: [下标=>]值
形式3:(不推荐)
$arr3[下标1] = 值1;
$arr3[下标2] = 值2;
整数下标的特性
可以使用任意整数,也可以不显式使用下标,此时默认就是整数下标。
而且,从前往后,每一个没有使用下标的单元,系统给其分配的下标为之前所用过的整数下标的最大值+1(对于第一个是0)。
$arr1 = array(‘a’, 2=>’b’, ‘c’, ‘x’=>’d’, ‘e’); // 其下标分别为:0, 2, 3, ‘x’, 4
$arr2 = array(5=>‘a’, 2=>’b’, ‘c’, ‘x’=>’d’); // 其下标分别为:5, 2, 6, ‘x’
$arr3[‘x’] = 5; //这一行,会自动创建一个数组,
$arr3[ ] = 6; //此时下标就是0
索引数组
通常是指一个数组的下标是从0开始的连续的整数。
$arr1 = array(5, 8, 12, 2, 3);
$arr2 = [8, 22, 24, 22, 12];
$arr3[ ] = 8;
$arr3[ ] = 24;
$arr3[ ] = 22;
关联数组
通常是指一个数组的下标都是字符串。
$person = array(
‘name’=>’张三’,
‘age’=>18,
‘edu’=> ‘大学’,
‘salary’=>10000,
‘from’=>’北京’,
);
数组的遍历(重点)
使用foreach语句遍历数组
<?php
$arr = array(
'name'=>"张三",
'age'=>19
);
foreach ($arr as $key => $item) {
echo $key,"--》".$item;
echo "<br>";
}
?>
常用的函数(重点)
数组的指针:每一个数组内部,都有一个“指针”,正常情况下,指针指向数组的某个单元,起初默认是指向第一个单元。
对于数组 $arr1 = array( 18, 22, 13, 28, 15, 33, );
图示如下:
下标 | 0 | 1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|---|---|
值 | 18 | 22 | 13 | 28 | 15 | 33 |
初始状态下,指针指向数组的第一个单元。
php中,有如下几个函数,可以针对数组指针进行相应操作:
$re = current( $arr1); //取得数组中当前指针所在单元的值;
$re = key( $arr1 ); //取得数组中当前指针所在单元的键(下标);
$re = next( $arr1 ); //将数组中的指针往后移动一个位置,并取得新位置上的值;
$re = prev( $arr1 ); //将数组中的指针往前移动一个位置,并取得新位置上的值;
$re = end( $arr1 ); //将数组中的指针移动到最后一个位置,并取得新位置上的值;
$re = reset($arr1); //将数组中的指针移动到最前一个位置,并取得新位置上的值;
手册》函数参考》变量与类型相关扩展》数组》数组函数
max(): 获取一个数组中的最大值
min(): 获取一个数组中的最小值
count(): 获取一个数组的元素个数
in_array(): 判断一个数据是否在指定数组中。
语法形式:$b = in_array( $数组, 数据); //结果true或false
range(): 生成某个范围的连续值的数组,比如range(3, 9)会得到数组:array(3, 4, 5, 6, 7, 8, 9, );
array_keys(): 取出一个数组中的所有“键”并放入一个索引数组中。
array_values(): 取出一个数组中的所有“值”并放入一个索引数组中。
array_push(): 将一个或多个数据放入一个数组的“末端”。
array_pop(): 将一个数组的最后一个单元删除,并返回该单元的值。
array_reverse(): 将一个数组的所有单元的顺序进行反转(最前的放最后,最后的放最前)
数组查找算法
查找算法,就是从一个数组中,找一个“目标”(可以是值,也可以是键)的算法。
数组的查找函数:
in_array() :在一个数组中找是否存在某个数据。
array_search() : 在数组中搜索给定的值,如果成功则返回相应的键名
array_key_exists() : 检查给定的键名或索引是否存在于数组中
数组和字符串互转
<?php
//判断表单是否提交
if(isset($_POST['token']) && $_POST['token']=='add')
{
print_r("<pre/>");
print_r($_POST);
//将$_POST['hobby']中的所有数据连成一个字符串
//implode()将数组元素连成一个字符串
//explode()将一个字符串分割成一个数组
$hobby = implode(',',$_POST['hobby']);
echo $hobby;
die();
}
?>
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="">
爱好:
<input type="checkbox" name="hobby[]" value="画画">画画
<input type="checkbox" name="hobby[]" value="音乐">音乐
<input type="checkbox" name="hobby[]" value="电脑">电脑
<input type="checkbox" name="hobby[]" value="游戏">游戏
<input type="checkbox" name="hobby[]" value="开车">开车
<input type="submit" value="提交">
<input type="hidden" name="token" value="add">
</form>
</body>
</html>