陈力:传智播客古代 珍宝币 泡泡龙游戏开发第28讲:PHP数组

陈力:传智播客古代 珍宝币 泡泡龙游戏开发第28讲:PHP数组


 PHP程序设计语言中的数组如何创建,一维数组的引用,PHP数组变量,foreach语句,如何对数组进行排序等等知识都是贵阳网站建设中的主要内容。本节介绍:陈力:传智播客古代 珍宝币 泡泡龙游戏开发第28讲:PHP数组。

一、什么是数组
     在贵阳网站建设中,经常需要解决一些实现的问题,比如:养鸡场有6只鸡,它们的体重分别是3kg,5kg,1kg,3.4kg,2kg,50kg。请问这六只鸡的总体重是多少?平均体重是多少? 请用当前掌握的PHP程序设计技术编一个程序求解。

    现在我们使用现有的技术来解决问题,array01.php程序设计代码:
$hen1=3;
 $hen2=5;
 $hen3=1;
 $hen4=3.4;
 $hen5=2;
 $hen6=50;
$zs=$hen1+$hen2+$hen3+$hen4+$hen5+$hen6
    如果我们的变量很多,如果我们分别取变量名,显示程序无法控制。这也是贵阳网站建设中必须避免的问题。因此,通过使用一个新的数据类型array 数组,来统一个管理这一组数,是十分方便的。
    数组:可以用于存放多个数据的数据类型,我们称为数组。
    快速体验案例: 用数组来解决养鸡场的问题。
//使用数组来完成案例
 $hens[0]=3;
 $hens[1]=5;
 $hens[2]=1;
 $hens[3]=3.4;
 $hens[4]=2;
 $hens[5]=50;
 $hens[6]=30;
 $allWeight=0;
 //遍历整个数组
 //有时为了知道某个数组共有多少个元素,可以使用系统函数count
 echo "共有".count($hens)."只鸡<br/>";
 for($i=0;$i<count($hens);$i++){
  echo "第".($i+1)."只鸡体重=".$hens[$i]."<br/>";
  $allWeight+=$hens[$i];
 }

 echo '<br/>总体重是='.$allWeight.'平均体重='.$allWeight/count($hens);

注意:该案例重点说明数组基本使用,后面介绍数组的细节。

二、数组创建
    在php程序设计语言中,数组就是关键字和值的集合,值是一种任何数据类型。 创建数组的方法很多,主要介绍以下几种:
(1)创建数组
$arr[0]=123;
$arr[1]=90;
$arr[2]=8;
数级在内存中的存在方式:是保存在一段边续的内存空间中。

软件设计,贵阳网站建设


   数组中经常用到下标、元素、元素值、数组类型等概念。
[0] -> 通常称为下标,或者称为 关键字。
$arr[0] -> 这个称为数组的一个元素。
$arr[0]=123; 123 表示该$arr[0]元素对应的值。
$arr是该数组的名称。是PHP的规范的标志符。
在php数组中,元素存放的值可以是任意数据数据类型。
例子:
<?php
 $arr[0]=123;
 $arr[1]="hello";
 $arr[2]=45.6;
 $arr[3]=true;
 $arr[4]=null;//即使放入了一个null,也要占一个空间
 echo "数组大小".count($arr);
 //遍历一下
 for($i=0;$i<count($arr);$i++){
  echo '<br/>'.$arr[$i];
 }
?>
(2)创建数组的第二种方法
    基本语法:$数组名=array(值,.......);
   举例说明:
$arr=array(1,90,"helllo",89.5);
 //遍历
 for($i=0;$i<count($arr);$i++){
  echo "<br/>".$arr[$i];
 }
(3)第三种方式创建数组
    在默认情况下,数组元素的下标,是从0开始给你编号,但是实际上,也可以自己指定。
    基本语法:
$arr[‘logo’]=”贵阳网站建设”;
$arr[’aa’]=123;
....
或者
$arr=array(”logo”=>” 贵阳网站建设”,”aa”=>123,4=>678);
案例:
 $arr[0]=123;
 $arr[1]=90;
 //遍历
 /* for($i=0;$i<count($arr);$i++){
   echo '<br/>'.$arr[$i];
  }*/
 
 //这个foreach适用范围更广
 foreach($arr as $key2=>$val2){
  echo $key2."=".$val2."<br/>";
 }

(4)注意事项
①如果我们创建一个数组的时候,没有给某个元素指定下标,php程序设计语言会自动的用目前最大的那个个下标值(整数), 加上一作为该元素的下标(关键字)
$arr=array(5=>"logo",567,90);
 //我要访问"logo"这个值
 echo $arr[5];
 echo "<br/>".$arr[6];
②如果我们给某个元素的下标一样,则会覆盖原来的值:
$arr=array(5=>"logo",567,90);
 //我要访问"logo"这个值
 $arr[5]="yes";//替换某个元素值
 echo $arr[5];
 echo "<br/>".$arr[6];
③如果我们使用true ,false null 作为key, 则应当怎样访问:
$arr[true]="hello"; //==> $arr[1]
 $arr[false]="world";//==> $arr[0]
 $arr[null]="北京";//==> $arr[null] 或者 $arr[""];
 //null<==>""
 echo $arr[0];
 echo "<br/>".$arr[null];
//我们通常可以使用print_r来显示这个数组情况。
print_r($arr);
echo "<br/>";
//var_dump可以更加详细的显示数组的信息,包括数组名称、类型、长度、值等信息。
var_dump($arr);
④访问数组的时候,不要越界比如:
$arr=array(56,100,101);
 echo $arr[2];//数组越界
 echo "hello";

三、一维数组的引用
    基本语法:$数组名[键值];
    如果你写的键值不存在,则会报告:Notice: Undefined offset
(1)一维数组使用陷阱
  $arr[bar]="hello,world";
  echo $arr[bar];
    这样使用时危险,贵阳网站建设的朋友千万不要这样使用。
    可以正常运行。但我们不推荐这样做,原因是此代码中有一个未定义的常量(bar)而不是字符串(‘bar’-注意引号),而 PHP 可能会在以后定义此常量,这样就冲突了。它能运行,是因为 PHP 自动将字符串(没有引号的字符串且不对应于任何已知符号)转换成一个其值为该裸字符串的正常字符串。例如,如果没有常量定义为 bar,PHP 将把它替代为 'bar' 并使用之。

(2)php的数组可以动态的增长
  $a=array(2,3);
  //这里说明php的数组是可以动态增长。
  $a[3]=56;
  echo $a[3];
    php数组是可以动态的增长的,这个和java的数组不一样,有点类似java中的ArrayList。

①数组可存放任意类型的数据。
②数组大小不必事先指定,可以动态增长
③数组名可以理解为指向数组首地址的引用.
④数组中的元素以 key=>value的形式存在
⑤如果没有给数组指定key,则取当前最大的整数索引值,而新的键名将是该值加1。

四、php的数组相关的函数说明

(1)count 函数
基本用法是:count($数组名); 可以统计该数组共有多少元素。
(2)is_array函数判断数组  is_array( $arr );
(3)print_r 和 var_dump【同时显示数据类型】 可以显示数组。
(4)拆分字符串 explode  explode (“按照什么拆分”,字符串);

案例:
 $str="贵阳&贵阳网站建设&软件设计&程序设计&毕业设计";
 //在实际开发中,涉及到字符串的拆分,可以考虑
 $arr=explode("&",$str);
 print_r($arr);

五、php数组变量的四个方法
    如果使用 for  while  do..while 要确定该数组的下标是从 0开始顺序排放。
$colors = array('red', 'blue', 'green', 'yellow');
 //for  while do_while
 //for循环
 for($i=0;$i<count($colors);$i++){
  echo "<br/>".$colors[$i];
 }
 //while循环
 $i=0;//循环控制变量
 while($i<count($colors)){
  echo "<br/>".$colors[$i];
  $i++;
 }
 //do..while循环
 $i=0;//循环控制变量
 do{
  echo "<br/>".$colors[$i];
  $i++;
 }while($i<count($colors));

 //foreach循环
 echo "<br/>*********";
 foreach($colors as $k=>$v){
  echo "<br/>$k=$v";
 }

六、使用unset函数可以销毁某个元素,也可以销毁某个变量,销毁该元素后,关键字不会重新组合。
unset() 函数允许删除数组中的某个键。但要注意数组将不会重建索引。查看文档。
$arr[0]=123;
 $arr[1]=456;
 $arr[2]="hello";
 //比如现在我要删除 $arr[1] 元素
 echo "<br/>**删除前****";
 echo $arr[1];
 unset($arr[1]);
 echo "<br/>**删除后****";
 echo $arr[1];
 echo print_r($arr);

七、数组运算符
php133.jpg
   +运算符把右边的数组元素(除去键值与左边的数组元素相同的那些元素)附加到左边的数组后面,但是重复的键值不会被覆盖。 
$a = array("a" => "apple", "b" => "banana");
 $b = array("a" => "pear", "b" => "strawberry", "c" => "cherry");
 $c = $a + $b; //$b数组的键和值加到$a
 echo "\$a + \$b result<br/>";
 var_dump($c); // "a" => "apple", "b" => "banana" "c" => "cherry"
 echo "<br/>";
 $c = $b + $a;  //"a" => "pear", "b" => "strawberry", "c" => "cherry"
 echo "\$b + \$a result <br/>";
 var_dump($c);

七、数组的案例
    为加强贵阳网站建设的朋友对数组的理解,我们再给出一个题,完成:在运动会上,五个小孩比赛滑轮,他们的滑完100米,分别用了10s、12s、5.7s、9s、14s,请编写一个程序,计算他们的平均时间?[array03.php] 时间保留到小数点后两位.

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
<h1>请输入五个小孩的成绩,用空格隔开</h1>
<form action="result2.php" method="post">
<input type="text" name="grade"/>
<input type="submit" value="开始统计"/>
</form>
</body>
</html>

处理过程的PHP程序代码result2.php
<?php
 //接收用户提交的学生的成绩!
 $grades=$_REQUEST['grade'];
 //echo 'grade='.$grades;
 //拆分,对成绩进行分割
 $grades=explode(" ",$grades);
 $allGrades=0;
 foreach($grades as $k=>$v){//遍历
  $allGrades+=$v; //隐藏转换 string->float
 }
 echo "平均时间是=".$allGrades/count($grades);
?>

如果要求贵阳网站建设的朋友把两个页面合并到一起,代码如下:

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<body>
<h1>请输入五个小孩的成绩,用空格隔开</h1>
<?php
 error_reporting(E_ALL ^ E_NOTICE);
 //接收用户提交的学生的成绩!
 $grades1=$_REQUEST['grade'];
 //echo 'grade='.$grades;
 //拆分,对成绩进行分割
 $grades=explode(" ",$grades1);
 $allGrades=0;
  foreach($grades as $k=>$v){//遍历
  $allGrades+=$v; //隐藏转换 string->float
 } 
?>
<form action="array03.php" method="post">
<input type="text" name="grade" value="<?php echo $grades1;?>"/>
<input type="submit" value="开始统计"/>
</form>
<?php
 echo "平均时间是=".$allGrades/count($grades);
?>
</body>
</html>

【推荐阅读】陈力:传智播客古代 珍宝币 泡泡龙游戏开发第28讲:PHP数组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值