入门PHP就来我这(纯干货)05

~~~~ 有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 ~~~~

路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。

1 数组及创建

数组,顾名思义,本质上就是一系列数据的组合。在这个组合中,每个数据都是独立的,可以对每个单独的数据进行分配和读取。在程序设计中引入数组可以更有效地管理和处理数据。

数组中每个实体都包含两个项:键(也叫下标)和值。可以通过键值来获取相应数组元素的值。

在PHP编程中,创建数组的方法主要有两种:一种是应用array()函数创建数组,另一种是直接通过数组元素赋值的方式创建数组。

1.1 array()创建数组
<?php $array = array("php","java","c++"); print_r($array); 
?>

此时如果我们想格式化输出内容,可以在输出的时候添加一个echo "<pre>";

<?php$array = array("php","java","c++");echo "<pre>";print_r($array);
?>

注意:从PHP5.4起可以使用短数组定义语法,用[]代替array(),如$array=["php","java","c++"];。

1.2 []创建数组
<?php$array = ["php","java","c++"];echo "<pre>";print_r($array);
?>

注意此时默认创建的数组的下标是从0开始的,因此如果需要把下标开始设置成1开头的,可以采用下面的方法。


<?php$array = array("1"=>"php","2"=>"java","3"=>"c++");echo "<pre>";print_r($array);
?>

1.3 数组赋值

数组赋值直接通过$array[1]="test";方式。

<?php$array = array("1"=>"php","2"=>"java","3"=>"c++");echo "<pre>";print_r($array);$array[1] = "PHP语言";$array[2] = "JAVA语言";$array[3] = "CPP语言";echo "<hr>";echo "赋值结果:<br>";print_r($array);
?>

2 数组类型

PHP支持两种数组:数字索引数组(indexed array)和关联数组(associative array),前者使用数字作为关键字,后者使用字符串作为键。

2.1 数字索引数组

PHP数字索引一般表示数组元素在数组中的位置,它由数字组成,一般默认从0开始,不需要特别指定。

<?php$pro1 = array("PHP","java","cpp");echo "<pre>";print_r($pro1)?>

2.2 关联数组

关联数组的键名可以是数值和字符串混合的形式,而不像数字索引数组的键名只能是数字。在一个数组中,只要有一个键名不是数字,那么这个数组就称为关联数组。

<?php$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp");echo "<pre>";$pro1["C"] = 9;print_r($pro1);?>

3 多维度数组(主要是二维)

3.1 二维数组定义

数组中不一定就一个键名和值的简单列表,每个位置还可以保存另一个数组。使用这种方法可以创建一个二维数组,二维数组其实也是类似于表格的形式。

<?php$pro1 = array("A"=>array(1,2,3),"B"=>"java","C"=>"cpp");echo "<pre>";$pro1["C"] = 9;print_r($pro1);?>

4 数组常用函数

4.1 遍历数组函数

使用foreach()函数遍历数组

<?php$pro1 = array("A"=>array(1,2,3),"B"=>"java","C"=>"cpp");foreach($pro1 as $key=>$value){echo $key.":".$value."<br>";}?>

4.2 统计数组元素个数

使用count()函数对数组中元素个数进行统计。

<?php$pro1 = array("A"=>array(1,2,3),"B"=>"java","C"=>"cpp");foreach($pro1 as $key=>$value){echo $key.":".$value."<br>";}echo "第一层数组元素个数为:".count($pro1);echo "<br>";echo "所有层元素个数和为".count($pro1, COUNT_RECURSIVE);//COUNT_RECURSIVE也可以改为1,默认为0?>

4.3 查询数组中指定元素

array_search()函数可以实现查询数组中给定的值的位置索引。

<?php$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp");$res = array_search("java",$pro1);echo "被查询的数组元素索引为:".$res;?>

4.4 获取数组中最后一个元素

通过array_pop()获取数组中最后一个元素,返回其值。

<?php$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp");$res = array_pop($pro1);echo "最后一个数组元素为:".$res;?>

4.5 向数组中添加元素

使用array_push()函数向数组中添加元素,返回最终的数组元素总数。

<?php$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp");echo "原来的数组个数为:".count($pro1);echo "<br>";$str = "android";$res = array_push($pro1,$str);echo "最终的数组元素个数为:".$res;?>

4.6 删除数组中重复元素

通过array_unique()函数可以删除数组中国重复元素。

<?php$pro1 = array("A"=>"PHP","B"=>"java","C"=>"cpp","D"=>"cpp","E"=>"java");echo "<pre>";print_r($pro1);echo "---------------<br>";$res = array_unique($pro1);print_r($res);?>

4.7 数组排序函数

常用的排序函数见下表:

函数名称

描述

sort()

从低到高的顺序排序,不保持索引关系。

rsort()

对数组逆向排序

asort()

对数组进行排序并保持索引关系

arsort()

对数组进行逆向排序并保持索引关系

ksort()

对数组按照键名排序

krsort()

对数组按照键名逆向排序

natsort()

用“自然排序”算法对数组排序

natcasesort()

用“自然排序”算法对数组进行不区分大小写字母的排序

小小案例带你飘一下
<?php/*** 根据数组中的某个键值的大小进行排序,仅支持二维数组* @param array $array 排序数组* @param string $key 键值* @param bool $asc 默认正序排序,false为降序* @return array 排序后的数组*/function arraySortByKey($array=array(), $key= " " ,$asc=true){$result = array();foreach($array as $k=>$v) {$values[$k] = isset($v[$key])?$v[$key]:" ";}unset($v);$asc?asort($values):arsort($values);foreach($values as $k=>$v) {$result[$k] = $array[$k];}return $result;}// 定义数组$data = array(array("post_id"=>1,'title'=>'如何学好php','reply_num'=>500),array("post_id"=>2,'title'=>'如何学好java','reply_num'=>600),array("post_id"=>3,'title'=>'如何学好cpp','reply_num'=>400));// 新的排序结果$new_array = arraySortByKey($data,'reply_num',false);echo "<pre>";print_r($new_array);?>

下节预告:PHP面向对象。

大家如果喜欢技术,并想有个好的交流平台可以关注我的 我的知乎首页,会不定期分享本人觉得比较好的技术类电子书。

另外,自己创建的一个技术qq群,玩转技术群,该群里功能:分享技能,电子书,代码,以及兼职项目等交流,欢迎大家加入一起交流。

^V^ ###制作不易,您的关注和点赞是路老师更新的动力!###^V^

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

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

相关文章

Studying-代码随想录训练营day26| 491.递增子序列、46.全排列、47.全排列 II、51.N皇后、37.解数独、回溯总结

第26天&#xff0c;回溯part04&#xff0c;昨天休息复习总结回溯内容&#xff0c;&#x1f4aa;(ง •_•)ง&#x1f4aa; 目录 491.递增子序列 46.全排列 47.全排列 II 51.N皇后 37.解数独 回溯总结 491.递增子序列 文档讲解&#xff1a;代码随想录递增子序列 视频讲…

[数据库原理]数据库设计(er图)

xtu期末是机试&#xff0c;所以图形表示有点不同 实体之间的关系&#xff1a; 多对多&#xff1a;可以生成一个新的关系模型一对一&#xff1a;两边都要关联一对多、多对一 &#xff1a;一的主键可以作为多的外键 如有错误&#xff0c;欢迎指正&#xff01;&#xff01;&#x…

中画幅巡检相机-SHARE 100M A10

【毫厘之间&#xff0c;洞见非凡】 ——SHARE 100M A10中画幅测量相机&#xff0c;巡检行业的新选择 在巡检行业&#xff0c;精准度是关键&#xff0c;深圳赛尔智控科技有限公司最新推出的SHARE 100M A10中画幅测量相机&#xff0c;基于先进的IMX461影像传感器&#xff0c;拥有…

rmvb转mp4格式有什么好方法?这四种好方法轻松帮你完成转换!

rmvb转mp4格式有什么好方法&#xff1f;当大家深入探索视频格式的多元世界时&#xff0c;不禁会被各种格式的独特魅力所吸引&#xff0c;在众多选项中&#xff0c;RMVB和MP4无疑是两大热门选择&#xff0c;它们各自在不同的场合下展现出了令人瞩目的优势与局限&#xff0c;首先…

25考研:今年初试时间比去年更早了?

过去5年考研初试时间安排如下&#xff1a; 24考研&#xff1a;2023年12月23-24日&#xff08;倒数第二个周末&#xff09; 23考研&#xff1a;2022年12月24-25日&#xff08;倒数第二个周末&#xff09; 22考研&#xff1a;2021年12月25-26日&#xff08;最后一个周末&#xf…

【Linux】TCP协议【下二】{流量控制/滑动窗口/延迟应答/捎带应答/拥塞控制}

文章目录 1.流量控制--利用“窗口大小”字段协商数据量大小1. 1第一次的时候&#xff0c;怎么保证发送数据量是合理的1.2第三次握手ack的时候&#xff0c;可以携带数据&#xff01;1.3流量控制&#xff0c;属于可靠性还是属于效率&#xff1f; 2.滑动窗口--利用滑动窗口解决批量…

快速入门FreeRTOS心得(正点原子学习版)

对于FreeROTS&#xff0c;我第一反应想到的就是通信里的TDM&#xff08;时分多址&#xff09;。不同任务给予分配不同的时间间隔&#xff0c;也就是任务之间在每个timeslot都在来回切换。 这里有重要的一点&#xff0c;就是中断要短小&#xff0c;优先级是自高到底进行打断。 …

Cocos制作抖音小游戏接入侧边栏复访接口实例

本篇文章主要讲解&#xff0c;使用cocos接入抖音小游戏侧边栏接口的实例教程。 日期&#xff1a;2024年7月1日 作者&#xff1a;任聪聪 教程实例&#xff1a;https://download.csdn.net/download/hj960511/89509196 下载后可直接导入运行 上传游戏后抖音预审不通过 注意&#x…

98 - IDEA远程调试服务器Java程序

Java 提供了一套标准的调试协议&#xff08;JDWP - Java Debug Wire Protocol&#xff09;&#xff0c;允许调试器&#xff08;IDE&#xff09;与被调试程序&#xff08;应用&#xff09;之间进行通信。 1.服务器特定命令启动程序 在服务器上以以下命令启动Java程序 java -a…

南京林业大学点云相关团队论文

【1】Chen Dong, Wan Lincheng, Hu Fan, Li Jing, Chen Yanming, Shen Yueqian*, Peethambaran Jiju, 2024. Semantic-aware room-level indoor modeling from point clouds, International Journal of Applied Earth Observation and Geoinformation, 2024, 127, 103685. 语义…

什么是脏读、幻读、不可重复读

数据库事务 数据库事务是指作为单个逻辑工作单元执行的一系列操作&#xff0c;这些操作要么全部成功执行&#xff0c;要么全部失败回滚&#xff0c;以保持数据库的一致性和完整性。在多线程或多用户同时操作时&#xff0c;难免会出现错乱与冲突&#xff0c;这就需要引入事务的…

软考高级-系统分析师知识点100条速记!

宝子们&#xff01;上半年软考已经结束一段时间了&#xff0c;准备备考下半年软考高级-系统分析师的小伙伴可以开始准备了&#xff0c;毕竟高级科目的难度可是不低的&#xff0c;相信参加过上半年系分的小伙伴深有体会。 这里给大家整理了100条系分知识点&#xff0c;涵盖全书9…

面试官:你了解git cherry-pick吗

事情要从一次不规范的代码开发开始说起 背景故事 时间 2024年某个风平浪静的周五晚上 地点 中国&#xff0c;北京&#xff0c;西二旗&#xff0c;某互联网大厂会议室 人物 小杰&#xff0c;小A&#xff0c;小B&#xff0c;老K 对话 老K&#xff1a;昨天提交的代码被测试打回来…

[ROS 系列学习教程] 建模与仿真 - 使用 ros_control 控制差速轮式机器人

ROS 系列学习教程(总目录) 本文目录 一、差速轮式机器人二、差速驱动机器人运动学模型三、对外接口3.1 输入接口3.2 输出接口 四、控制器参数五、配置控制器参数六、编写硬件抽象接口七、控制机器人移动八、源码 ros_control 提供了多种控制器&#xff0c;其中 diff_drive_cont…

方法的用法

一.简介 目前为止我给出的所有的案例都是将代码放在main方法中&#xff0c;就会产生一些问题&#xff1a; 代码冗长&#xff0c;不利于维护变量过多&#xff0c;想不出那么多的变量名没有重用性 那么该如何解决呢&#xff1f; 我们可以编写功能性的代码块&#xff0c;来被ma…

FormMaking表单设计器V3.8发布,数据表格上线,支持多选、多级表头、列模板自定义、操作列、分页等设置

介绍 FormMaking 是基于Vue的可视化表单设计器&#xff0c;赋能企业实现可视化低代码开发模式&#xff1b;帮助开发者从传统枯燥的表单代码中解放出来&#xff0c;更多关注业务&#xff0c;快速提高效率&#xff0c;节省研发成本。 目前已经在OA系统、考试系统、报表系统、流程…

MyBatis-plus这么好用,不允许还有人不会

你好呀&#xff0c;我是 javapub. 做 Java 的同学都会用到的三件套&#xff0c;Spring、SpringMV、MyBatis。但是由于使用起来配置较多&#xff0c;依赖冲突频发。所有&#xff0c;各路大佬又在这上边做了包装&#xff0c;像我们常用的 SpringBoot、MyBatisPlus。 基于当前要…

C语言的数据结构:图的操作

&#x1f6fa;图的遍历&#xff1a; 注意&#xff1a;在遍历的过程中&#xff0c;可能会出现 回路 ( 已经访问过的节点还要重新访问一次 ) \color{orange}回路(已经访问过的节点还要重新访问一次) 回路(已经访问过的节点还要重新访问一次). 当从A开始访问时&#xff0c;先访问…

heic格式转化jpg,手把手教你将heic转换成jpg【办公必备】

一、什么是heic heic格式是一种高效的图片格式&#xff0c;它可以在较小的文件大小下提供高质量的图片。 二、如何打开heic 然而&#xff0c;这种图片因其格式的特殊性&#xff0c;在实际应用中仍存在一些问题&#xff1a;压缩效果可能不够理想&#xff0c;一些老旧的软件和设…

stm32学习笔记---USART串口外设(理论部分)

目录 USART简介 USART的框图 串口的引脚 USART的基本结构 数据帧 起始位侦测 数据采样 波特率发生器 USD转串口模块的原理图 声明&#xff1a;本专栏是本人跟着B站江科大的视频的学习过程中记录下来的笔记&#xff0c;我之所以记录下来是为了方便自己日后复习。如果你…