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

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

  在PHP程序设计语言中,如何创建二维数组呢,怎样使用二维数组,这些问题在网站建设中非常重要。二维数组的基本语法为: $a=array(array(),array()..),本文通过实例,对数组或者二维数组的知识进行介绍。

一、多维数组(二维数组)
    二维数组的基本语法:
语法: $a=array(array(),array()..)
比如: $a=array(array(1,2),array(5,0));
定义例子:
$arr=array( array(1,2,3), array(5,6,9) );
$arr[0]=array(1,0);
    二维数组的应用很多,比如地图,扫雷游戏等都使用了二维数组。
    二维数组在内存中存在的形式:

软件设计,PHP多维数组,贵阳网站建设

 二维数组案例:请用二维数组输出如下图形:
    0 0 0 0 0 0
    0 0 1 0 0 0
    0 2 0 3 0 0
    0 0 0 0 0 0
//首先定义一个二维数组:
 $arr=array(
 array(0,0,0,0,0,0,1),
 array(0, 0, 1, 0 ,0 ,0,5),
 array(0 ,2 ,0, 3, 0, 0,90),
 array(0,0,0,0,0,0,100));
//遍历二维数组(行)
 for($i=0;$i<count($arr);$i++){
  //遍历每行的数据
  for($j=0;$j<count($arr[$i]);$j++){
   echo $arr[$i][$j]."&nbsp;";
  }
  echo "<br/>";
 }
 echo "<br/>".$arr[2][3];

二、 二维数组的相关实例
(1)打印如下图型:
*********
*********
*********
*********
*********
*********

(2)打印如下图型:
*
**
***
****
*****
(3)打印如下图型:

软件设计,贵阳网站建设

(4)空心金字塔
(5)空心菱形

PHP程序设计代码如下:
view.php
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
</head>
<form action="homework01.php" method="post">
请输入层数:<input type="text" name="layer"/><br/>
请选择形状:
<select name="shape">
<option value="a">矩形</option>
<option value="b">半金字塔</option>
<option value="c">金字塔</option>
<option value="d">金字塔</option>
<option value="e">金字塔</option>
</select><br/>
<input type="submit" value="打印"/>
</form>
</html>
完成处理的homework01.php程序设计代码:
<?php
 //$n表示层数
 $n=$_REQUEST['layer'];
 //"a"->表示矩形 "b"=>一半金子塔 "c"=>完整的金字塔
 $shape=$_REQUEST['shape'];
 $starNum=5;
 //swtich
 function printShape($n,$shape,$starNum=5){
  switch($shape){
   case "a":
    for($i=1;$i<=$n;$i++){
     for($j=1;$j<=$starNum;$j++){
      echo "*";
     }
     //打完一层后,换行
     echo "<br/>";
    }
    break;
   case "b":
    for($i=1;$i<=$n;$i++){
     
     for($j=1;$j<=$i;$j++){
      echo "*";
     }
     echo "<br/>";
    }
    break;
   case "c":
    break;
  }
 }
 printShape($n,$shape); //调用
?>

(6)已知手掌游戏机一台320元,mp3一台260元。公司举行抽奖大会,公司有18人,一等奖游戏机,二等奖mp3,购入5台游戏机,13台mp3。问总价为多少,公司实际平均给每人花费了多少钱。
<?php
 $gamerPrice=320;
 $mp3Price=260;
 $gamerNum=5;
 $mp3Num=13;
$totalPrice=$gamerPrice*$gamerNum+ $mp3Price* $mp3Num;
 $avgPrice= $totalPrice/ 18;
?>

(7)跳水比赛
    跳水比赛实例中,有8个评委打分。运动员的成绩是8个成绩取掉一个最高分,去掉一个最低分,剩下的6个分数的平均分就是最后得分。使用一维数组实现打分功能。
解题PHP代码:
<?php
 $arr=array(90,23,89,100,2,5,89,44);
 //如果只想知道最低分和最高分是多少,则可以排序。
 //找出给出最低分的裁判
 //该函数可以返回给出最低分的裁判的下标
 function findMin($arr){
  //假设第一个人就是给出最低分的裁判
  $minFen=$arr[0];
  $minIndex=0;
  for($i=1;$i<count($arr);$i++){
 //如果下面条件成立,说明$i 裁判给出的成绩更低
if($minFen>$arr[$i]){
 $minFe=$arr[$i];
 $minIndex=$i;
}
}
return  $minIndex;
}
?>

(8)乘法表
<?php
   for($i=1;$i<=3;$i++)
  {
   for($j=1;$j<=$i;$j++)
   {
   echo "$j*$i=".$i*$j;
   echo '&nbsp';
  }
  echo '<br/>';
  }
?>
(9)学生成绩管理系统
    实现一个简单学生成绩管理系统,定义一个数组,用户输入10个同学的成绩,数组下标即代表学生学号。要求:输入学号,打印该学生成绩;输入成绩,打印该学生学号;统计各个分数阶段学生人数(不及格,差,中,良,优);输入学号,实现删除学生成绩功能。
PHP程序设计代码如下:
<?php
 $arr=array(10,30,40,55,9,11,67,55,100,90,80,85);
 //这个一个专门用于查找成绩的函数
 function showStuGrade($stuNo,&$arr){
  return $arr[$stuNo]; //查找
 }
 function showStuNo($grade,&$arr){ //函数
  $flag=false;
  for($i=0;$i<count($arr);$i++){
   if($grade==$arr[$i]){
    echo "<br/>学号为".$i."学生成绩是:".$grade;
    $flag=true;
   }
  }
  if($flag==false){
   echo "<br/>没有学生考出这个成绩";
  }
 }
 //接收doing值,从而判断该用户点击哪个按钮
 $doing=$_REQUEST['doing'];
 if($doing=="seaGrade"){
  $stuNo=$_REQUEST["stuNo"];//接受学生的编号:
  echo "学生编号是".$stuNo."的成绩是:".showStuGrade($stuNo,$arr);
 }elseif($doing=="seaStuNo"){
  $grade=$_REQUEST["grade"];//接受用户输入的成绩
  showStuNo($grade,$arr);
 }else if($doing=="stuState"){
  //3、 统计各个分数阶段学生人数(不及格 0-59 ,差60-69 ,中70-79,良80-89,优90-100)
  $stuStateArr=array(0,0,0,0,0);
  for($i=0;$i<count($arr);$i++){
   if($arr[$i]>=0 && $arr[$i]<=59){
    $stuStateArr[0]+=1;
   }else if($arr[$i]>=60 && $arr[$i]<=69){
    $stuStateArr[1]+=1;
   }else if($arr[$i]>=70 && $arr[$i]<=79){
    $stuStateArr[2]+=1;
   }else if($arr[$i]>=80 && $arr[$i]<=89){
    $stuStateArr[3]+=1;
   }else if($arr[$i]>=90 && $arr[$i]<=100){
    $stuStateArr[4]+=1;
   }
  }
echo "<br/>统计结果如下: 不及格有".$stuStateArr[0]."<br/> 差有".$stuStateArr[1]."<br/>中有".$stuStateArr[2]."<br/>良有".$stuStateArr[3]."<br/>优秀有".$stuStateArr[4];
 }
?>

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值