当前位置: 首页 > news >正文

PHP8的数组-PHP8知识详解

今天开始学习数组, 本文主要讲了三点:什么是数组、php8中数组的改进、数组函数。

一、什么是数组

在PHP8中,数组是非常重要的数据类型。相对于其他的数据类型,数组更像一种结构,而这种结构可以储存一系列数值。

数组中的数值被称为数组元素。每一个元素都有对应的标识,也称为键或者下标。通过这个键可以访问数组元素。数组的键可以是数字,也可以是字符串。

数组是对大量数据进行有效组织和管理的手段之一,通过数组的强大功能,可以对大量性质相同的数据进行存储、排序、插入及删除等操作,从而可以有效的提高程序开发效率及改善程序的编写方式。PHP为程序开发人员提供了大量的数组操作函数。

数组,本质上就是一系列数据的组合。在这个组合中,每一个数据都是独立的,可以对每一个单独的数据进行分配和读取,然而这一系列数据是同一种类型的,不能是不同类型。

举例,我们把学校的学生定义为一个数组,学号是键,姓名就是值:

建: 001   002    003   004   005  ……

值:小华  小红  小军  小梅  小明 ……

Image

二、PHP8中数组的改进

PHP 8.0 引入了一些有趣的新特性和改进,包括数组方面的一些改进。以下是 PHP 8.0 中关于数组的一些重要变化:

1、JIT 改进:

PHP 8.0 引入了 JIT 编译器,这对数组操作有一些性能提升。这意味着在某些情况下,PHP 8.0 可能会更快地执行数组操作。

2、类型注解和更严格的类型检查:

PHP 8.0 支持数组类型的强类型注解,可以在函数参数、返回值和类属性上使用。这有助于更好地指定期望的数据类型,从而提高代码的类型安全性。

3、新的 array union 运算符:

PHP 8.0 引入了 array union 运算符(|),它允许将两个数组合并为一个新数组,同时去除重复的值。这是一个更简洁和直观的方式来合并数组,而不需要使用 array_merge() 或其他方法。

4、新的 nullsafe 运算符:

PHP 8.0 引入了 nullsafe 运算符(?->),它可以更容易地处理数组中可能为 null 的值,而不需要显式检查和处理每个可能为空的变量。

5、match 表达式对数组的支持:

PHP 8.0 中的 match 表达式可以用来根据数组的值进行匹配操作,从而更方便地执行条件逻辑。

三、数组函数:

PHP 8提供了许多用于操作和处理数组的函数,例如:

array_push():向数组末尾添加一个或多个元素。

array_pop():从数组末尾取出并返回最后一个元素。

array_merge():合并一个或多个数组。

array_slice():从数组中取出一段。

array_search():在数组中搜索给定的值并返回键名。

in_array():检查数组中是否存在某个值。

array_keys():返回数组中所有的键名。

array_values():返回数组中所有的值。

array_count_values():统计数组中每个元素出现的次数。

array_diff():返回数组之间的差异。

array_intersect():返回数组的交集。

array_unique():删除数组中的重复元素。

array_column():从二维数组中返回指定列的值。

array_combine():将一个数组的值作为键名,另一个数组的值作为键值,合并为一个新数组。

array_reverse():反转数组的顺序。

array_chunk():将数组分割为新的数组块。

array_walk():对数组中的每个元素应用用户自定义函数。

array_map():对数组的每个元素应用回调函数。

array_merge_recursive():递归合并多个数组合并后的新数组。

array_replace():使用回调函数替换数组合并后的新数组。

array_diff_uassoc():比较两个或多个数组,并返回差集,使用用户自定义键比较。

array_udiff_assoc():比较两个或多个数组,并返回差集,使用用户自定义键比较,且忽略键名。

array_udiff():比较两个或多个数组,并返回差集,使用用户自定义函数比较。

array_uintersect():比较两个或多个数组,并返回交集,使用用户自定义函数比较。

array_intersect_uassoc():比较两个或多个数组,并返回交集,使用用户自定义键比较。

array_intersect_assoc():比较两个或多个数组,并返回交集,使用键名比较。

array_diff_uassoc():比较两个或多个数组,并返回差集,使用用户自定义键比较,且忽略键名。

array_udiff():比较两个或多个数组,并返回差集,使用用户自定义函数比较。

array_uintersect():比较两个或多个数组,并返回交集,使用用户自定义函数比较。

array_intersect_uassoc():比较两个或多个数组,并返回交集,使用用户自定义键比较。

array_intersect_assoc():比较两个或多个数组,并返回交集,使用键名比较。

到此为止,本文学习的什么是数组、PHP8中数组的改进、数组函数就讲解完毕了。

相关文章:

PHP8的数组-PHP8知识详解

今天开始学习数组, 本文主要讲了三点:什么是数组、php8中数组的改进、数组函数。 一、什么是数组 在PHP8中,数组是非常重要的数据类型。相对于其他的数据类型,数组更像一种结构,而这种结构可以储存一系列数值。 数组…...

数据仓库_维度表的两大分类

最近看一篇文章对维度表进行了分类,记录一下。 维度表主要分为两类高基数维度表和低基数维度表。 高基数维度数据 一般是用户资料表、商品资料表类似的资料表。数据量可能是千万级或者上亿级别。 低基数维度数据 一般是配置表,比如枚举值对应的中文含…...

4、DVWA——文件包含

文章目录 一、文件包含概述二、low2.1 源码分析2.2 通关分析 三、medium3.1 源码分析3.2 通关思路 四、high4.1 源码分析4.2 通关思路 五、impossible 一、文件包含概述 文件包含是指当服务器开启allow_url_include选项时,就可以通过php的某些特性函数(i…...

产品经理如何进行需求管理

产品经理在进行需求管理时,可以遵循以下步骤: 1. 确定需求目标:明确产品的愿景和目标,确定需求管理的方向和重点。 2. 收集需求:与利益相关者(包括用户、业务部门、技术团队等)沟通,…...

【从0学习Solidity】2. 值类型详解

Solidity极简入门: 2. 值类型 博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发…...

框架分析(9)-Hibernate

框架分析(9)-Hibernate 专栏介绍Hibernate特性对象关系映射(ORM)数据库连接和事务管理查询语言(HQL)缓存机制透明的持久化操作对象的延迟加载事务管理 优缺点优点简化数据库操作跨数据库平台高度可定制性缓…...

JavaScript中的原型链(prototype chain)

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ JavaScript中的原型链⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏…...

设计模式之代理模式与外观模式

目录 代理模式 简介 优缺点 角色职责 实现 运用场景 外观模式 简介 角色职责 优缺点 实现 使用场景 代理模式 简介 由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为…...

动手学深度学习(四)多层感知机

目录 一、多层感知机的从零开始实现 1.1 初始化模型参数 1.2 实现Relu函数 1.3 实现模型 1.4 训练 二、多层感知机的简洁实现 2.1 实现模型 2.2 训练 三、模型选择 3.1 训练误差和泛化误差 3.2 验证数据集和测试数据集 3.3 过拟合和欠拟合 3.4 代码实现 3.4.1 生…...

融云出海:社交泛娱乐出海,「从 0 到 1」最全攻略

9 月 21 日,融云直播课社交泛娱乐出海最短变现路径如何快速实现一款 1V1 视频社交应用? 欢迎点击上方小程序报名~ 本期我们翻到《地图》的实践篇,从赛道/品类选择、目标地区适配、用户增长、变现模式、本地化运营、跨国团队管理等方面完整描绘…...

生成式人工智能促使社会转变

作者:JEFF VESTAL 了解 Elastic 如何处于大型语言模型革命的最前沿 – 通过提供实时信息并将 LLM 集成到数据分析的搜索、可观察性和安全系统中,帮助用户将 LLM 提升到新的高度。 iPhone 社会转变:新时代的黎明 曾几何时,不久前…...

【STM32】SPI初步使用 读写FLASH W25Q64

硬件连接 (1) SS( Slave Select):从设备选择信号线,常称为片选信号线,每个从设备都有独立的这一条 NSS 信号线,当主机要选择从设备时,把该从设备的 NSS 信号线设置为低电平,该从设备即被选中,即…...

javaScript:DOM(父子/兄弟)常用属性

目录 前言 一.父子关系 父子关系的常用属性 childNodes 获取所有的子节点 children 获取所有的子元素(dom元素) firstChild 获取元素的第一个子节点,相当于 childNodes[0] firstElementChild 获取元素的第一个元素 相当于 children[0]…...

笔记:linux中LED(GPIO)驱动设备树配置和用法

设备树中节点配置 设备树中的LED驱动一般是这样写&#xff0c;LED驱动可以控制GPIO的电平变化&#xff0c;生成文件节点很方便 leds: leds {compatible "gpio-leds";gpio_demo: gpio_demo {label "gpio_demo";gpios <&gpio0 RK_PC0 GPIO_ACTIV…...

能耗管理+分区温控成为开发节能、省电神器的关键!从此告别电费刺客时代

取暖器在人们脑海中最深刻的印象&#xff0c;就是费电&#xff01;而它耗电量大的原因&#xff0c;主要在于它是靠电能直接转化为热能&#xff1a;在取暖设备通电后&#xff0c;内部高电阻的电热丝发热&#xff0c;风机会将这股热量吹散到室内&#xff0c;从而达到全屋取暖的效…...

垃圾回收 - 复制算法

GC复制算法是Marvin L.Minsky在1963年研究出来的算法。说简单点&#xff0c;就是只把某个空间的活动对象复制到其它空间&#xff0c;把原空间里的所有对象都回收掉。这是一个大胆的想法。在此&#xff0c;我们将复制活动对象的原空间称为From空间&#xff0c;将粘贴活动对象的新…...

基于SpringMVC实现常见功能

基于SpringMVC实现常见功能 防止XSS攻击 XSS攻击全称跨站脚本攻击&#xff0c;是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆&#xff0c;故将跨站脚本攻击缩写为XSS&#xff0c;XSS是一种在web应用中的计算机安全漏洞&#xff0c;它允许恶意web用户将代码植入到…...

MetInfo5.0文件包含漏洞

MetInfo历史版本与文件 环境在这里下载&#xff0c;使用phpstudy搭建 我们来看到这个index.php&#xff0c;如下图所示&#xff0c;其中定义了fmodule变量与module变量&#xff0c;其中require_once语句表示将某个文件引入当前文件&#xff0c;在这个代码中&#xff0c;通过r…...

【SpringBoot】SpringBoot实现基本的区块链的步骤与代码

以下是Spring Boot实现基本的区块链代码的步骤&#xff1a; 创建一个Block类&#xff0c;它表示一个区块&#xff0c;包含一个区块头和一个区块体。区块头包括版本号、时间戳、前一个区块的哈希值和当前区块的哈希值。区块体包含交易数据。 创建一个Blockchain类&#xff0c;它…...

Photoscan/Metashape 2.0.0中的地面激光扫描处理

在Metashape(原Photoscan)2.0.0, 结构化地面激光扫描和非结构化航空激光扫描都可以使用导入点云&#xff08;文件>导入>导入点云&#xff09;命令导入。导入时会保留所有点属性&#xff08;包括结构化信息&#xff09;。 本文讨论以下主题 如何将激光扫描数据导入项目&am…...

git快速使用

1、下载git 设置签名 2、基本概念 工作区&#xff1a;写代码的地方。 暂存区&#xff1a;.git的.index 工作区&#xff1a;.git 3、常用操作 本地codinggit init&#xff0c; 初始化一个本地仓库&#xff0c;项目根目录下会出现个.gitgit remote add origin gitgithub.com…...

java 实现代理模式

代理模式&#xff08;Proxy Pattern&#xff09;是一种结构型设计模式&#xff0c;它允许一个对象&#xff08;代理对象&#xff09;充当另一个对象&#xff08;被代理对象&#xff09;的接口&#xff0c;以控制对该对象的访问。代理模式通常用于以下情况&#xff1a; 远程代理…...

【每日一题】力扣1768. 交替合并字符串

题目以及链接&#xff1a; 1768. 交替合并字符串 给你两个字符串 word1 和 word2 。请你从 word1 开始&#xff0c;通过交替添加字母来合并字符串。如果一个字符串比另一个字符串长&#xff0c;就将多出来的字母追加到合并后字符串的末尾。 返回 合并后的字符串 。 示例 1&…...

vscode新建vue3文件模板

输入快捷新建的名字 enter 确认后在文件中输入以下内容 {// Place your snippets for vue here. Each snippet is defined under a snippet name and has a prefix, body and// description. The prefix is what is used to trigger the snippet and the body will be expand…...

MySql学习笔记02——MySql的简单介绍

MySQL 常用命令 注意在mysql中使用的命令需要用英文分号结尾&#xff08;启动/关闭mysql服务不需要带分号&#xff09; net start mysql 启动mysql服务&#xff08;需要管理员启动cmd&#xff09; net stop mysql关闭mysql服务&#xff08;需要管理员启动cmd&#xff09; m…...

mysql-1:认识mysql

文章目录 数据库概述什么是数据库什么是关系型数据库 MySQL的概述MySQL是什么MySQL发展历程 SQL的概述什么是SQLSQL发展的简要历史&#xff1a;SQL语言分类 数据库概述 什么是数据库 数据库就是[存储数据的仓库]&#xff0c;其本质是一个[文件系统]&#xff0c;数据按照特定的…...

算法通关村-----堆在查找和排序中的应用

数组中的第K个最大元素 问题描述 给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。你必须设计并实现时间复杂度为 O(n) 的算法解决此问题。详见le…...

直方图统计增强方法

直方图统计增强方法的原理&#xff1a;   直方图统计增强是一种基于像素值分布的图像增强技术&#xff0c;通过调整像素值的分布来增强图像的对比度和细节。其原理是根据图像的直方图信息&#xff0c;将原始像素值映射到一个新的像素值域&#xff0c;从而改变图像的亮度和对比…...

字节二面:如果高性能渲染十万条数据?

前言 最近博主在字节面试中遇到这样一个面试题&#xff0c;这个问题也是前端面试的高频问题&#xff0c;作为一名前端开发工程师&#xff0c;我们虽然可能很少会遇到后端返回十万条数据的情况&#xff0c;但是了解掌握如何处理这种情况&#xff0c;能让你对前端性能优化有更深的…...

Mysql高阶语句(二)

一、设置别名&#xff08;alias ——>as&#xff09; 在 MySQL 查询时&#xff0c;当表的名字比较长或者表内某些字段比较长时&#xff0c;为了方便书写或者 多次使用相同的表&#xff0c;可以给字段列或表设置别名。使用的时候直接使用别名&#xff0c;简洁明了&#xff0…...

网站建设v/东莞seo黑帽培训

满意答案你的问题有点难&#xff0c;我从网上查了一下&#xff01;找到了关于fx-82ms变fx-991ms1.首先进入SD模式 2.按1&#xff0c;再按M到不能按为止 3.选第二个 4.按上 5.输入1313131....到不能输入为止 6.按&#xff0c;出现data full&#xff0c;再按 &#xff0c; 7.按0(…...

wordpress写插件/网络营销最基本的应用方式是什么

前言 开门见山&#xff0c;开篇明意。这篇博客主要讲解一下Android中ProgressBar控件以及间接继承它的两个子控件SeekBar、RatingBar的基本用法&#xff0c;因为其有继承关系&#xff0c;存在一些共有特性&#xff0c;所以在一篇博客中讲解。下面先简单描述一下这三个控件&…...

苏州微网站建设/企业为何选择网站推广外包?

参考《导弹飞行力学》 对部分参数的解释: dx/dtf(t,x): 之前一直看不懂f&#xff08;t,x&#xff09;到底指的哪个式子&#xff0c;其实在开头就提出来了&#xff0c;f是dy K2△t*f(tk△t/2,xk1/2*K1)&#xff1a;t在导弹飞行力学&#xff0c;是y(0)(M中是1)&#xff0c;所…...

网站设计公司/sem优化是什么意思

这张图我相信基本上对JVM有点接触的都应该很熟悉&#xff0c;可以说这是JVM入门的第一课。其中的“堆”和“虚拟机栈&#xff08;栈&#xff09;”更是耳熟能详。下面将围绕这几张图对JVM的运行时数据区做一个简单介绍。程序计数器&#xff08;Program Counter Register&#x…...

wordpress iis 404页面/线下引流推广方法

你不知道的JavaScript博文相关代码托管至Github&#xff0c;每次写完博客会把代码提交上去。 代码地址&#xff1a;https://github.com/rongbo-j/you-dont-know-js 点击Download Zip可下载源码&#xff0c;或者安装git版本控制工具&#xff0c;在控制台或终端敲两行命令可以检出…...

网站推广入口/南宁百度seo推广

实例 1、取得 MYSQL 的版本取得 MYSQL 的版本实例 2、创建一个表并且插入数据创建一个表并且插入数据实例 3、 python 使用 slect 获取 mysql 的数据并遍历使用 slect 获取 mysql 的数据并遍历上面的代码&#xff0c;用来将所有的结果取出&#xff0c;不过打印的时候是每行一个…...