数组有如下几种定义形式

形式1:

$arr1 = array(单元1,单元2,…);

形式2:

$arr2 = [单元1,单元2,…];

单元(元素)的形式为: [下标=>]值

形式3:(不推荐)

$arr3[下标1] = 值1;
$arr3[下标2] = 值2;

整数下标的特性

  1. 可以使用任意整数,也可以不显式使用下标,此时默认就是整数下标。
  2. 而且,从前往后,每一个没有使用下标的单元,系统给其分配的下标为之前所用过的整数下标的最大值+1(对于第一个是0)。
  3. $arr1 = array(‘a’, 2=>’b’, c’, x’=>’d’, e’); // 其下标分别为:0, 2, 3, ‘x’, 4
  4. $arr2 = array(5=>‘a’, 2=>’b’, c’, x’=>’d’); // 其下标分别为:5, 2, 6, ‘x’
  5. $arr3[‘x’] = 5; //这一行,会自动创建一个数组,
  6. $arr3[ ] = 6; //此时下标就是0

索引数组

通常是指一个数组的下标是从0开始的连续的整数。

  1. $arr1 = array(5, 8, 12, 2, 3);
  2. $arr2 = [8, 22, 24, 22, 12];
  3. $arr3[ ] = 8;
  4. $arr3[ ] = 24;
  5. $arr3[ ] = 22;

关联数组

通常是指一个数组的下标都是字符串。

  1. $person = array(
  2. name’=>’张三’,
  3. age’=>18,
  4. edu’=> ‘大学’,
  5. salary’=>10000,
  6. from’=>’北京’,
  7. );

数组的遍历(重点)

使用foreach语句遍历数组

  1. <?php
  2. $arr = array(
  3. 'name'=>"张三",
  4. 'age'=>19
  5. );
  6. foreach ($arr as $key => $item) {
  7. echo $key,"--》".$item;
  8. echo "<br>";
  9. }
  10. ?>

常用的函数(重点)

数组的指针:每一个数组内部,都有一个“指针”,正常情况下,指针指向数组的某个单元,起初默认是指向第一个单元。
对于数组 $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() : 检查给定的键名或索引是否存在于数组中

数组和字符串互转

  1. <?php
  2. //判断表单是否提交
  3. if(isset($_POST['token']) && $_POST['token']=='add')
  4. {
  5. print_r("<pre/>");
  6. print_r($_POST);
  7. //将$_POST['hobby']中的所有数据连成一个字符串
  8. //implode()将数组元素连成一个字符串
  9. //explode()将一个字符串分割成一个数组
  10. $hobby = implode(',',$_POST['hobby']);
  11. echo $hobby;
  12. die();
  13. }
  14. ?>
  15. <!DOCTYPE html>
  16. <html>
  17. <head>
  18. <title></title>
  19. </head>
  20. <body>
  21. <form method="post" action="">
  22. 爱好:
  23. <input type="checkbox" name="hobby[]" value="画画">画画
  24. <input type="checkbox" name="hobby[]" value="音乐">音乐
  25. <input type="checkbox" name="hobby[]" value="电脑">电脑
  26. <input type="checkbox" name="hobby[]" value="游戏">游戏
  27. <input type="checkbox" name="hobby[]" value="开车">开车
  28. <input type="submit" value="提交">
  29. <input type="hidden" name="token" value="add">
  30. </form>
  31. </body>
  32. </html>