php 数组基础/练习

数组

练习在最后

数组概述

概述与定义

  • 数组中存储键值对

    数组实际上是一个有序映射 key-value,可将其当成真正的数组、列表(向量)、散列表、字典、集合、栈、队列等

  • 数组中的元素可以是任意类型的数据对象(可以嵌套数组)

  • 输出数组时不能使用 echo 语句,可以使用 print_r() 函数代替

  • <?php?>标签前加<pre>标签可格式化输出

  • 解决中文乱码问题,在页面 头部加标签<meta charset = "utf-8">

  • 定义数组(array)

    $stu[]
    
    <?php$name = "zhangsan";$age = 18;$score = 59.9;$sex = true;$stu[] = $name;$stu[] = $age;$stu[] = $score;$stu[] = $sex;print_r($stu);print_r("<br />");print_r($stu[1]);print_r("<br />");var_dump($stu);?>
    

    image-20231023090801622

数组特点

  • 键值对(key-value)
  • 键,key,存储在数组中,变量的编号(0 开始)
  • 值,value,存储在 数组中,变量的值
  • 数组中的元素可以是任意类型的数据对象
  • 复合数据类型,非线性(一个数组对应多个值)

数组分类

  • 索引数组

    变量的"编号"是整数,整数不具备一定的语义

  • 关联数组

    变量的"编号"用字符串表示,可以具备一定的语义

  • 不指定键名时默认为索引数组

    <?php$name = "zhangsan";$age = 18;$score = 59.9;$sex = true;$stu['name'] = $name;$stu['age'] = $age;$stu['score'] = $score;$stu['sex'] = $sex;print_r($stu);print_r("<br />");print_r($stu['score']);print_r("<br />");var_dump($stu);?>
    

    image-20231023090809718

数组的创建

直接赋值

  • 语法

    $变量名称[]=数据;
    // 创建索引数组
    $变量名称[key]=数据;
    // 创建关联数组
    
  • 创建第二个学生信息

    <?php$stu2['name']="lisi";$stu2['sex']=false;$stu2['age']=22;$stu2['score']=99.9;echo "<pre>";// <pre>保持文本格式的预格式化文本标签var_dump($stu2);?>
    

    image-20231023090817735

array 结构

  • 语法

    $变量 = array(变量1,变量2,...);
    //或
    $变量 = array('key1' => value1,'key2' => value2,...
    )
    
  • 创建第三个学生信息

    <?php$stu3 = array("wangwu",true,25,0);echo "<pre>";var_dump($stu3);?>
    

    image-20231023090828559

  • 创建第四个学生信息

    <?php$stu4 = array('name' => "july",'sex' => true,'age' => 23,'score' => 46
    );echo "<pre>";print_r($stu4);?>
    

    image-20231023090834914

输出

  • print_r()echo 类似

    当输出为 bool 类型的 true 时,输出 1

    当输出为 bool 类型的 false 时,不输出

    <?php$test[] = false;$test[] = true;print_r($test);print_r('<br />');var_dump($test);?>
    

    image-20231023090841030

多维数组

  • 数组中的元素可以是任何类型的数据,当数组中的元素为数组时为多维数组

多维数组创建–一个班四个学生为例

  • 一个班四个学生的信息

  • 定义完学生数组再定义班级数组,先定义数组内元素的数组

    <?php$stu1 = array('name' => "zhangsan",'sex' => true,'age' => 23,'score' => 46
    );$stu2 = array('name' => "lisi",'sex' => false,'age' => 22,'score' => 89
    );$stu3 = array('name' => "wangwu",'sex' => true,'age' => 26,'score' => 59.9
    );$stu4 = array('name' => "jucy",'sex' => false,'age' => 19,'score' => 98
    );$class = array($stu1,$stu2,$stu3,$stu4);echo "<pre>";print_r($class);?>
    

    image-20231023090849017

数组元素的操作

数组元素的访问

  • 通过 key 找到数组中的 value

    <?php$stu1 = array('name' => "zhangsan",'sex' => true,'age' => 23,'score' => 46
    );echo "<pre>";echo "zhangsan's score is {$stu1['score']}";// 引号中的变量要用 {} 括起来
    ?>
    

    image-20231023090855463

  • 多维数组的访问

    <?php$stu1 = array('name' => "zhangsan",'sex' => true,'age' => 23,'score' => 46
    );$stu2 = array('name' => "lisi",'sex' => false,'age' => 22,'score' => 89
    );$stu3 = array('name' => "wangwu",'sex' => true,'age' => 26,'score' => 59.9
    );$stu4 = array('name' => "jucy",'sex' => false,'age' => 19,'score' => 98
    );$class = array($stu1,$stu2,$stu3,$stu4);echo "<pre>";echo "zhangsan's score is {$class[0]['score']}";?>
    

    image-20231023090903524

元素操作

  • 读取:通过 key 捕获数组中的 value

  • 修改、增加,直接赋值

  • 删除:PHP中删除数组元素意义不大,可置之不理

    <?php$stu1 = array('name' => "zhangsan",'sex' => true,'age' => 23,'score' => 46
    );$stu1['score'] = 60;// 将原成绩 46 修改为 60echo "<pre>";print_r($stu1);?>
    

    image-20231023090909008

数组的遍历(循环)

  • 数组中的每个元素都访问一次

for 循环

  • 缺点:使用 for 循环遍历数组依赖 key 元素的自然数规律(索引数组)

  • 索引数组遍历

    <?php$stu = array("wangwu",true,25,0);echo "<pre>";for($i = 0 ; $i < count($stu) ; $i++){// count($stu) 计算数组长度echo $stu[$i]."<br />";}?>
    

    image-20231023090915866

foreach 语句

  • foreach 语法结构 提供了数组遍历的简单方式

  • foreach 这种语言结构是专门来遍历数组的,foreach 是一种循环,不需要额外计时器(数组中有多少个元素,循环就执行多少次)

  • 基本结构

    遍历值

    foreach($arr as $key){echo $key;
    }
    
    foreach($arr as $key => $value){// 代码块
    }
    
    <?php$stu = array('name' => "lisi",'sex' => false,'age' => 22,'score' => 89
    );foreach($stu as $key => $value){echo $value."<br />";}?>
    

  • 访问键值对

    <?php$stu = array('name' => "lisi",'sex' => false,'age' => 22,'score' => 89
    );foreach($stu as $key => $value){echo $key."=>".$value."<br />";}?>
    

    image-20231023090931036

  • 多维数组遍历

    <?php$stu1 = array('name' => "zhangsan",'sex' => true,'age' => 23,'score' => 46
    );$stu2 = array('name' => "lisi",'sex' => false,'age' => 22,'score' => 89
    );$stu3 = array('name' => "wangwu",'sex' => true,'age' => 26,'score' => 59.9
    );$stu4 = array('name' => "jucy",'sex' => false,'age' => 19,'score' => 98
    );$class = array($stu1,$stu2,$stu3,$stu4);echo "<pre>";foreach($class as $k => $v){foreach($v as $key => $value){// 取 $class 数组的 value(内部数组名)echo $value."<br />";}echo '<br />';}?>
    

    image-20231023090940059

  • 注意

    • foreach 是用来遍历数组的循环语言结构,数组中有多少个元素,该语言结构就会循环执行几次

    • foreach 语言结构中,临时变量的名字可以变化,但是语言结构不能改变

      foreach($class as $k => $v){}
      // 上述代码中 $k 和 $v 中 $后的变量名 可以任意命名
      // 但 => 不可改变
      // $class 为要遍历的目标数组
      

练习

将班级内的成员属性以表格形式输出

<meta charset='utf-8'>
<pre>
<?php$stu1 = array("name"=> "zhangsan","sex"=> "1","age"=> "18","score"=> "99.99") ;$stu2 = array("name"=> "lisi","sex"=> "0","age"=> "19","score"=> "59.99") ;$stu3 = array("name"=> "wangwu","sex"=> "1","age"=> "18","score"=> "60") ;$stu4 = array("name"=> "zhaoliu","sex"=> "1","age"=> "23","score"=> "65") ;$class = array($stu1,$stu2,$stu3,$stu4) ;echo "<table border=1>";echo"<tr ><td colspan = '4' align='center'>学生信息</td></tr>";echo "<tr><td>姓名</td><td>性别</td><td>年龄</td><td>成绩</td></tr>";foreach($class as $k => $v) {// $class 的 $value 值为 class 内的多个 stu数组echo "<tr>";// 循环到每个 student 时建立一行表格foreach($v as $key => $value) {echo "<td>";// 循环到每个 stu 的每个属性时建立一个单元格echo $value;echo "</td>";}echo "</tr>";
}
echo "</table>";
?>

效果

image-20231023104714393

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/115228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

英语什么时候加s和es

名词变复数一般情况下加s&#xff0c;以s,x,ch,sh结尾加es。一个名词如果表示一个或一样东西&#xff0c;它取单数形式&#xff0c;如果表示两个或更多的这类东西&#xff0c;则需要用名词复数形式。 1 以s,x,sh,ch结尾的词&#xff0c;加es。 2 以辅音字母&#xff08;除a/e/…

CNN系列

文章目录 R-CNN&#xff08;2014&#xff09;Conclusion SPP-net&#xff08;2015&#xff09; R-CNN&#xff08;2014&#xff09; 哈哈 创新&#xff1a; (1)人们可以将高容量卷积神经网络(cnn)应用于自下而上的区域建议&#xff0c;以定位和分割对象; (2)当标记训练数据稀缺…

python爬虫语法

注释 单行注释 # 多行注释 ‘’’注释内容’’’ 变量类型 和java不同不需要定义数据类型 变量名变量值 Numbers&#xff08;数字&#xff09;&#xff1a;int&#xff08;有符号整型&#xff09;、long&#xff08;长整型[也可以代表八进制和16进制]&#xff09;、float&am…

动画系统的前世今生(一)

掐指一算&#xff0c;五年没更新过我的CSDN账号啦&#xff0c;方向也从人工智能变成了计算机图形学&#xff0c;当然也依旧会关注AI的发展&#xff0c;之前在知乎上写了一些文章[传送门]&#xff0c;后续也会逐渐同步到CSDN上&#xff5e; 这个系列将包含五篇文章&#xff0c;内…

JVM 基础篇:类加载器

一.了解JVM 1.1什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟计算机功能来实现的&#xff0c;JVM屏蔽了与具体操作系统平台相关的信息&#xff0c;Java程序只需…

从Excel到智能化:智能报表的演进与未来发展趋势

摘要&#xff1a;本文由葡萄城技术团队于CSDN原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 报表的迭代历程 报表工具的诞生与计算机技术的出现和信息技术的进步密不可分。下图是报…

2017年高热度编程语言简介

世上语言千千万&#xff0c;我却独爱这一种!”这句话用来形容程序员和编程语言之间的爱恨情仇实在是再精准不过了。根据GitHub 2016年的开源报告&#xff0c;其上所有开源项目共包含了316种编程语言&#xff0c;这是一个什么概念呢?举个例子来说&#xff0c;世界上共有226个国…

粤嵌实训医疗项目day02(Vue + SpringBoot)

目录 一、创建vue项目并运行 二、vue-cli中的路由使用 三、element-ui框架、实现页面布局以及vue-路由 四、前端登录页面 五、user登录后端接口完善【后端】 六、user登录前端-请求工具-请求发起【前端】 七、请求的跨域-访问策略 八、完善项目的页面布局、导航菜单以及…

“香蕉大王”的转型升级,能否扩大市场份额?

佳农食品控股 ( 集团 ) 股份有限公司,于2023年10月11日同海通证券签署上市辅导协议&#xff0c;计划登陆上交所主板。据了解这已经不是佳农食品第一次IPO了&#xff0c;2019 年&#xff0c;佳农集团曾向上交所递交过招股说明书&#xff0c;当时的招股书披露&#xff0c;佳农集团…

python爬虫入门(一)web基础

HTTP基本要点 HTTP请求&#xff0c;由客户端向服务端发出&#xff0c;可以分为 4 部分内容&#xff1a;请求方法&#xff08;Request Method&#xff09;、请求的网址&#xff08;Request URL&#xff09;、请求头&#xff08;Request Headers&#xff09;、请求体&#xff08…

如何破解压缩包密码,CTF压缩包处理

I. 引言 压缩包我们经常接触&#xff0c;用于对文件进行压缩存储/传输。压缩包处理在CTF比赛中是非常重要的一块&#xff0c;因为压缩包中可能包含重要信息&#xff1a;许多CTF题目会将关键信息隐藏在压缩包中&#xff0c;参赛者需要解压并查看其中的内容才能获取有用的线索。…

使用Axure RP和内网穿透技术制作静态站点并实现公网访问

文章目录 前言1.在AxureRP中生成HTML文件2.配置IIS服务3.添加防火墙安全策略4.使用cpolar内网穿透实现公网访问4.1 登录cpolar web ui管理界面4.2 启动website隧道4.3 获取公网URL地址4.4. 公网远程访问内网web站点4.5 配置固定二级子域名公网访问内网web站点4.5.1创建一条固定…

如何在linux服务器上安装Anaconda与pytorch

如何在linux服务器上安装Anaconda与pytorch 1&#xff0c;安装anaconda1.1 下载anaconda安装包1.2 安装anaconda1.3 设计环境变量1.4 安装完成验证 2 Anaconda安装pytorch2.1 创建虚拟环境2.2 查看现存环境2.3 激活环境2.4 选择合适的pytorch版本下载2.5 检测是否安装成功&…

Centos磁盘爆满_openEuler系统磁盘爆满清理方法---Linux工作笔记060

磁盘爆满,监控部门就会报警,报警就要处理,但是程序员并不擅长做运维的工作,记录一下把...以后用到会方便: 使用df -h命令可以看到,对应的磁盘占用情况,这里我的/dev/mapper/openeuler-root这个目录 占用的磁盘比较多,到了百分之95了.. 往往就是这个跟目录,我这里/data目录是自…

CVer从0入门NLP(一)———词向量与RNN模型

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;专栏推荐&#xff1a;深度学习网络原理与实战 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&#x1f3fc;、…

[C++随想录] 二叉搜索树

搜素二叉树 二叉搜索树的使用二叉搜索树的模拟实现(K)整体结构循环版本递归版本 二叉搜索树的应用源码(kv) 二叉搜索树的使用 二叉搜索树 相较于 普通的二叉树来说: 根节点的左子树的所有键值都 小于 根节点, 根节点的右子树的所有键值 大于 根节点根节点的 左右子树 都是 二…

2023年中国石英矿资源现状及行业市场供需分析[图]

石英矿为常见的非金属矿物质&#xff0c;具有储量大、分布广、易开采等特点&#xff0c;根据不同成矿特性和理化特性&#xff0c;石英矿物可分为岩浆岩型、变质型、热液型、沉积型&#xff0c;对应的石英岩分别为花岗伟晶岩、脉石英岩、石英岩和石英砂岩。 石英矿物类型和特点…

无人机遥控中应用的2.4GHz无线芯片

无人驾驶飞机简称“无人机”&#xff0c;英文缩写为“UAV”&#xff0c;是利用无线电遥控设备和自备的程序控制装置操纵的不载人飞机&#xff0c;或者由车载计算机完全地或间歇地自主地操作。是一种不需要人操控就能够自主飞行的飞行器&#xff0c;它可以执行多种任务&#xff…

大数据开发中的秘密武器:探索Hadoop纠删码的奇妙世界

随着大数据技术的发展&#xff0c;HDFS作为Hadoop的核心模块之一得到了广泛的应用。为了系统的可靠性&#xff0c;HDFS通过复制来实现这种机制。但在HDFS中每一份数据都有两个副本&#xff0c;这也使得存储利用率仅为1/3&#xff0c;每TB数据都需要占用3TB的存储空间。因此&…

【网络安全入门】学习网络安全必须知道的100 个网络基础知识

前言 先领取资料再阅读哦 【282G】网络安全&黑客技术零基础到进阶全套学习大礼包&#xff08;附面试题答案&#xff09;&#xff0c;免费分享&#xff01; 【282G】网络安全&黑客技术零基础到进阶全套学习大礼包&#xff08;附面试题答案&#xff09;&#xff0c;免…