1.数组的介绍
说明:一组数据的集合,数组是由元素组成
案例:求学生的总分数和平均分数
常规的做法:
<?php
/**
* @Author: 吾爱乐享
* @Date: 2018-09-17 22:16:42
* @Last Modified by: 吾爱乐享
* @Last Modified time: 2018-09-17 22:33:03
*/
//求学生的总分数和平均分数
//常规的做法
$yuwen = 70;
$shuxue = 90;
$yingyu = 50;
$tiyu = 100;
$sum = $yingyu + $shuxue +$yingyu + $tiyu;
$ave =$sum / 4;
echo “总分数为:{$sum},平均分数:{$ave}”;
数组的做法:
<?php
/**
* @Author: 吾爱乐享
* @Date: 2018-09-17 22:16:42
* @Last Modified by: 吾爱乐享
* @Last Modified time: 2018-09-17 22:33:03
*/
//求学生的总分数和平均分数
//数组的做法
$arr = array($yingyu, $shuxue, $yingyu, $tiyu);
$sum = 0;
$num = 0;
for($i = 0; $i<count($arr); $i++){
$sum += $arr[$i];//总分数
$num++;//总的科目数
}
$ave = $sum / $num;//平均分数
echo “总分数为:{$sum},平均分数:{$ave}”;
2.数组的创建
数组有三种创建方式:
- 变量 = array(元素1,元素2,元素3,……);
- 变量 = array(元素的值1,元素的值2,元素的值3,…..);
- 变量[下标] = 值;
//数组的创建 //方式一:变量 = array(元素1,元素2,元素3,......); $arr1 = array('name' => '张三', 'age' => 23, 'sex' => '男'); echo '方式一:<br>'; var_dump($arr1); //方式二:变量 = array(元素的值1,元素的值2,元素的值3,.....); $arr2 = array('李四', 24, '男'); echo '方式二:<br>'; var_dump($arr2); //方式三:变量[下标] = 值; $arr3['name'] = '王五'; $arr3['age'] = 25; $arr3['sex'] = '女'; echo '方式三:<br>'; var_dump($arr3);
数组的注意事项
- 元素是由下标和值组成,也称键值对
- 下标是每个数据值的对应的名称,一个数组中可能有相同的值,用下标来定位和区分对应的值
- 下标可以自定义也可以系统自动生成,自定义的下标的数组称为关联数组,系统生成的数组称为,索引数组,索引数组是的下标是从0开始的
- 如果自定义了下标,就会按照自定义的下标区分数据,没有下标的就从0开始依次递增
- 如果其中定义了一个数字,那么这个数组后面的数据的下标就从定义的这个数字开始依次递增
- 下标又称索引和键名,index和offset
- 数值也称键值,数组中数值的数据类型为8种
- 数组的覆盖,在同一个数组中,如果后面的元素中的下标和前面元素的下标重复了,那么后面的元素的值就会覆盖前面的元素值
- 数组的自增,在一个已知的数组中添加新的元素,$旧的数组变量名[] = 新的元素
- 数组分为索引数据和关联数组和混合数组
- 索引数组:下标都是数字,且连续的递增的方式
- 关联数组:下标都是字符串
- 混合数组:既有数字又有字符串
全部案例代码:
[erphpdown]
//1.元素是由下标和值组成,也称键值对 $array1 = array('1' => '张三','2' => '李四');//等号前面的1和2表示键名,后面的张三和李四表示的键值 echo '注意1:<br>'; var_dump($array1); //2.下标是每个数据值的对应的名称,一个数组中可能有相同的值,用下标来定位和区分对应的值 $array2 = array('1' => '吾爱乐享', '2' => '吾爱乐享' );//键值相同,用键名来区分 echo '注意2:<br>'; var_dump($array2); //3.下标可以自定义也可以系统自动生成,自定义的下标的数组称为关联数组,系统生成的数组称为,索引数组,索引数组是的下标是从0开始的 $array3 = array ('name' => '张三', '李四');//可以自定义也可以不定义 echo '注意3:<br>'; var_dump($array3); //4.如果自定义了下标,就会按照自定义的下标区分数据,没有下标的就从0开始依次递增 $array4 = array('11','22','33','44');//不定义系统自动生成以0开始自动递增 echo '注意4:<br>'; var_dump($array4); //5.如果其中定义了一个数字,那么这个数组后面的数据的下标就从定义的这个数字开始依次递增 $array5 = array('11','22',10 => '33','44','55');//第三个定义了下标10,那么后面的下标自动就i从11开始地址 echo '注意5:<br>'; var_dump($array5); //6.下标又称索引和键名,index和offset //7.数值也称键值,数组中数值的数据类型为8种 $array7 = array('张三',23,null,$arr1,3.14,true); echo '注意7:<br>'; var_dump($array7); //8.数组的覆盖,在同一个数组中,如果后面的元素中的下标和前面元素的下标重复了,那么后面的元素的值就会覆盖前面的元素值 $array8 = array('1' => '11','2' => '22','3' => '33','1' => '44');//后面的44就会覆盖前面的11,因为下标相同 echo '注意8:<br>'; var_dump($array8); //9.数组的自增,在一个已知的数组中添加新的元素,$旧的数组变量名[] = 新的元素 $array9 = array(11,22,33,44,55); $array9 = array(6 =>66,77,88,99);//如果不定义下标的话是从0开始,就会覆盖之前的内容,要新增,就需要定义和之前不一样的下标 echo '注意9:<br>'; var_dump($array9); //10.数组分为索引数据和关联数组和混合数组 //10.1索引数组:下标都是数字,且连续的递增的方式 $array10 = array(11,22,33,44,55,66); echo '注意10:<br>'; var_dump($array10); //10.2关联数组:下标都是字符串 $array11 = array('num1' => 11,'num2'=>22,'num3'=>33); echo '注意10:<br>'; var_dump($array11); //10.3混合数组:既有数字又有字符串 $array12 = array('name' => '张三', 23); echo '注意10:<br>'; var_dump($array12);
[/erphpdown]
1234