A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小鲁哥哥 于 2017-5-21 11:17 编辑

【济南中心】PHP课程同步笔记day13:数组介绍
数组
1.数组的概念
数组是一组值的集合,变量是单个值的容器,而数组是多个值的容器
2.数组的分类
   1.枚举数组:数组的下标是从0开始的正整数
   2.关联数组:数组的下标可以是字符串
$arr = array(
“db_host” => “localhost”,
“db_user” => “root”,
“db_pwd” =>”root”,
);
   3.混合数组:下标既有整型的,也有字符串的
$arr = array(
“db_host” => “localhost”,
“db_user” => “root”,
“db_pwd” =>”root”,
“黑马程序员”,
“济南分校”
);
   4.多维数组:数组的元素的值的类型是一个数组。数组套数组。数组元素的下标只能是正整数和字符串。数组元素的值,可以是任何类型,当然可以是数组。
   $arr = array(
      Array(10,11,12,13),
      Array(20,21,22),
      Array(30,31),
      TRUE,NULL
   );
3.数组的创建
a) 使用array()来创建数组
   $arr = array(
      [$key=>]$value,
      [$key=>]$value,
      [$key=>]$value,
      .....
   );
语法说明:
   $key代表数组元素的下标,可以省略。
   $key的类型可以是整型和字符型,如果$key省略,默认的数组应该是枚举数组。
   $value代表数组元素的值,值可以是任何类型。
“=>”重载下标,或者重新指定下标。
   多个数组元素之间用英文下的逗号隔开。
b)使用[]创建数组的语法
语法1:$arr[] = $value
说明:
   1)如果数组不存在,则会创建一个数组
   2)第一个元素就是下标为0的元素
   3)如果数组存在,则相当于添加一个新元素
   4)新元素的下标,应该是最大整数下标+1
语法2: $arr[$key] = $value
说明:
   1)同时指定下标,指定的下标是多少,就是多少。
   2)如果指定的数组不存在,也会创建一个数组
   3)如果指定的数组存在,则添加一个新元素
   $arr[] = 100;
   $arr[] = 200;
   $arr[5] = 500;
   $arr[“a”] = “abc”;
多维数组
1、使用array()来创建多维数组
$arr = array(
   Array(10,11,12,13,14),
   Array(20,21,22,23),
   Array(30,31,32),
   Array(
      Array(40,41),
      Array(42,43)
   )
);
2、使用[]来创建多维数组
$arr[“name”] = “Mary”;
$arr[“sex”] = “男”;
$arr[“contact”][“tel”] = “11111111111”;
$arr[“contact”][“qq”] = “11233321”;
$arr[] = array(10,20,30);
实例:用表格输出二维数组
[PHP] 纯文本查看 复制代码
$arr = array(
   Array(“10010”,”Mary”,”大专”,”传智专修学院”),
   Array(“10020”,”Kate”,”大专”,”传智专修学院”),
   Array(“10030”,”James”,”大专”,”传智专修学院”),
   Array(“10040”,”Kobe”,”大专”,”传智专修学院”),
);
$str = “”;
$str .= “<table width=600 border=1 rules=all cellpadding=5 align=center>”
For($i = 0;$i<count($arr);$i++){
$str .=”<tr>”;
For($j=0;$j<count($arr[$i]);$j++){
$str.=”<td>”.$arr[$i][$j].”</td>”;
}
$str .= “</tr>”;
}
$str .= “</table>”;
Echo $str;
数组操作函数
1.print_r()
     a) 描述:打印变量信息
     b) 语法:print_r(mixed $expression)
     c) 说明:如果给出的是string、interger或float,将打印变量值本身。如果给出的是array,将会按照一定格式显示键和元素
2.Count()
     a) 描述:统计数组有效数据的个数
     b) 说明:计算数组中的单元数目或对象中的属性个数。
     c) 语法:int count(mixed $var)
     d) 参数:$mode是否统计多维数组中的个数
3.Unset()
     a) 描述:删除变量或数组元素或者对象属性
     b) 语法:void unset(mixed $var)
     c) 返回值:无
     d) 注意:如果删除变量的话,只是删除变量名称和到值之间的指向。如果删除数组元素的话,值会被删除,而下标还在。如果删除整个数组的话,而整个数组都不存在了。
实例:求一维数组中元素的平均值
[PHP] 纯文本查看 复制代码
$arr = array(1,2,3,4,5,6,7,8);
$num = 0;
$len = count($arr);
For($i=0;$i<$len;++$i){
$sum += $arr[$i];
}
Echo “平均值为:”.$sum/$len;
实例:求二维数组中元素的平均值
[PHP] 纯文本查看 复制代码
$arr = array(
Array(10,11,12,13,14),
Array(20,21,22,23),
Array(30,31,32),
Array(40,41),
Array(50)
);
$sum = 0;
$len = 0;
For($i = 0;$i<count($arr);$i++){
For($j=0;$j<count($arr[$i]);$j++){
$sum += $arr[$i][$j];
$len ++;
}
}
Echo “平均值:”.round($sum/$len,2);
实例:求一维数组中的最大值
[PHP] 纯文本查看 复制代码
$arr = array(9,2,3,45,5,7);
$max = $arr[0];
For($i=0;$i<count($arr);$i++){
If($max<$arr[$i]){
$max = $arr[$i];
}
}
Echo “最大值为:$max”;
实例:交换一维数组中最大值和最小值的位置
[PHP] 纯文本查看 复制代码
$arr = array(1,2,3,4,5,6,7,8);
$max = $arr[0];
$max_index = 0;
$min = $arr[0];
$min_index = 0;
For($i=0;$i<count($arr);$i++){
//最大值
If($max<$arr[$i]){
$max = $arr[$i];
$max_index = $i;
}
//最小值
If($min>$arr[$i]){
$min = $arr[$i];
$min_index = $i;
}
}
//交换最大值和最小值的位置
$arr[$max_index] = $min;
$arr[$min_index] = $max;
数组遍历:foreach
      语法结构:
            Foreach($arr as [$key=>]$value){循环体代码}
      语法结构说明:
            $arr代表当前要遍历的数组名称
            As是系统关键字
            $key表示每一次取到元素的键名,可以省略
            $value表示每一次取到元素的键值
            如果数组指针指到数组的末端,则退出循环
实例:foreach遍历一维数组
[PHP] 纯文本查看 复制代码
$arr = array(
“name” => “Mary”,
“sex”        => “男”,
“age”        => 24
);
Foreach($arr as $key=>$value){
Echo “\$arr[$key]=$value<br />”;
}
实例:foreach遍历二维数组
[PHP] 纯文本查看 复制代码
$arr = array(
“a” =>array(“10010”,”Mary”,”男”,24),
“b”=>array(“10020”,”Kate”,”女”,20),
“c” => array(“10030”,”Kobe”,”男”,40)
);
$str = “”;
$str .=”<table width=500 border=1>”;
Foreach($arr as $arr2){
$str .=”<tr>”;
Foreach($arr2 as $value){
$str .=”<td>$value</td>”;
}
$str .=”</tr>”;       
}
$str .=”</table>”;
Echo $str;
实例:foreach 中的$value引用传地址
[PHP] 纯文本查看 复制代码
$arr = array(1,2,3,4,5,6,7,8);
Foreach($arr as &$value){
$value *=2;
}
Var_dump($arr);
数组操作函数
      1.each()
            a) 描述:返回数组中当前的键/值对(数组元素)并将数组指针向前移动一步
            b) 语法:array each(array &$array)
            c) 返回值:返回array数组中当前指针位置的键/值对并向前移动数组指针。键值对被返回四个单元的数组。单元0和key包含有数组单元的键名,1和            value包含有数据。
      2.List()
            a) 描述:把数组中的值(前几个值)赋给一些变量
            b) 语法:array list(mixed $varname)
            c) 举例:list($name,$sex,$age) = array(“Kobe”,”男”,24,”高中”);
                  i. 说明:将数组中前三个元素的值,赋给list函数中的三个变量。
                  ii. 数组中多余的值不需要
                  iii. 要求数组必须是枚举数组,下标必须是从0开始的正整数
                  iv. 下标必须是连续的,中间不能断档。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马