陈力:传智播客古代 珍宝币 泡泡龙游戏开发第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);
    二维数组的应用很多,比如地图,扫雷游戏等都使用了二维数组。
    二维数组在内存中存在的形式:

二维数组案例:请用二维数组输出如下图形:
    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多维数组

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

  1. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第35讲:PHP 抽象类与接口

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第35讲:PHP 抽象类与接口 如果一个类使用abstract 来修饰,则该类就是抽象类.抽象方法是声明为abstract的,是不需要实现的,供子类继承且实现 ...

  2. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第22讲:PHP语法、数据类型(整型、布尔型、浮点型、字符串型)

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第22讲:PHP语法.数据类型(整型.布尔型.浮点型.字符串型) PHP语法是什么样的,有哪些数据类型,有些什么变量.本文对PHP语法.数据类型(整型.布尔型 ...

  3. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第48讲:PHP绘图技术

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第48讲:PHP绘图技术 php绘图坐标体系中,坐标原点位于左上角,以像素为单位.php绘图时,要创建画布.画出各种图形.输出图形.销毁图形(释放内存资源). ...

  4. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第26讲:PHP函数

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第26讲:PHP函数 什么是PHP函数,如何通过function定义一个函数,如何理解函数的调用过程.这些问题都是网站建设中经常遇到的程序设计问题.在进行网站 ...

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

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

  6. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第50讲:PHP中的xml编程

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第50讲:PHP中的xml编程 Xml是extensiable markup language的简称,包括文档声明.元素.属性.注释.CDATA区.特殊字符 ...

  7. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十讲:深入理解盒子模型

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第十讲:深入理解盒子模型 摘要:通过前节<第九讲:块元素.行内元素.标准流.盒子模型>学习了前节介绍了贵阳网站建设中的DIV+CSS中类选择器.i ...

  8. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第38讲:PHP数据库编程mysql

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第38讲:PHP数据库编程mysql php程序设计语言为我们提供了mysql扩展库.mysqli扩展库.Pdo三种方式来操作mysql数据库.本文为贵阳网站 ...

  9. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第29讲:PHP排序和查找

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第29讲:PHP排序和查找 PHP程序设计语言中的排序有内部排序.外部排序法等多种.本文介绍了交换式排序法.选择式排序法.插入式排序法等.还介绍了顺序查找.二 ...

最新文章

  1. 百越杯 Reverse (crazy write up)
  2. Catalyst 2950/2955交换机的RSPAN配置
  3. Mac高效笔记软件GoodNotes 5
  4. 马丁关于id加密验证防攻击
  5. 原生JS实现文件上传
  6. swagger常用注解汇总
  7. java计算机毕业设计家庭记账系统源码+数据库+系统+lw文档+mybatis+运行部署
  8. 购买《哈利波特》书籍
  9. 微软 Visual Studio 2019 正式发布
  10. 科学计算法(e/E表示规则)
  11. Debian虚拟机安装常用软件
  12. WINCE 注册表修改
  13. 如何解决抖音服务器维修中,干货丨关于抖音限流的各种问题,以及「解决方案」...
  14. 第四篇:mmpose之各类Demo测试及自定义数据原理(强推)
  15. 关于计算机的知识作文,计算机想象作文
  16. 使用nodejs Crawler模块 爬取页面dom数据,图片和视频等详解
  17. ERROR: Symbol file could not be found. Defaulted to export symbols for ntkrnlpa.exe - Loading Kern
  18. .Net6 or .Net Core界面程序依赖注入实现Caliburn.Micro
  19. 拒绝流氓广告,捆绑插件,轻松下载各种官方正版软件,纯净版Windows系统
  20. 你还在找免费的室内家装SU模型吗?

热门文章

  1. 音视频入门-10-使用libyuv对YUV数据进行缩放、旋转、镜像、裁剪、混合
  2. 三秒教会你如何使用scrcpy手机无线投屏到电脑
  3. 国标GB28181流媒体服务器SIP视频流获取过程
  4. 中专生女生学高铁还是计算机,女生学习高铁乘务专业好就业吗
  5. 【历史上的今天】1 月 30 日:鼠标之父诞生;Trisquel GNU/Linux 问世;Office 2007 开始零售
  6. fastJson 转Map 或 List
  7. Android应用市场
  8. MapKeyboard键盘改键
  9. GIS应用技巧之编辑矢量数据
  10. 关于485收数据的问题