服务端(PHP)函数_数组操作
文档概述
轻语言网站**后端(PHP)**开发中的数组操作相关函数、用于处理数组的创建、修改、查询和转换,包含数组创建、合并、添加、查找、删除、排序等数组操作功能,常用于数据处理、列表管理、批量操作等场景。
⚠️ 使用限制说明:
- 本文档内函数仅限在轻语言后端文件
.sph代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。- 不得在编写前端页面
.spl代码中使用,更禁止与 JS 代码混合使用。- 编写前端请使用
前端(JavaScript)函数_*类目下的中文函数;服务端只能使用服务端(PHP)函数_*类目下的中文函数。- 前后端虽存在同名函数(如
创建数组、取数组成员数),但底层实现与运行环境完全不同,严禁混用。
💡 PHP 原生英文函数使用说明:
- 轻语言后端支持直接调用 PHP 原生英文函数(如
print_r()、count()、array_keys()、in_array()等)。- 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
- 仅支持使用原生英文函数名,严禁使用 PHP 原生语法格式和英文关键字(如
if(){}、for(){}、function、class、echo等控制结构与语法关键字)。- 控制结构必须使用轻语言中文关键字:
如果...否则...结束 如果、变量循环...结束循环、函数 ... 结束 函数等。- 注:
->(对象方法调用)、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。
PHP 数组相关特性:
- 有序映射:PHP 数组是有序映射(ordered map),既可作索引数组(数字键)也可作关联数组(字符串键),统一为数组类型
- 输出函数:后端使用
输出/输出数组进行结果输出,对应 PHP 的echo/print_r - 短数组语法:支持
[键=>值, 键=>值]创建关联数组,等价于 PHP 的短语法 - 弱类型比较:PHP 默认弱类型比较,如
0 == "abc"为真,使用取成员是否存在等函数需注意类型陷阱
函数:创建数组(...值)
创建一个数组;参数值可以为空。
' 创建空数组
变量 空数组 = 创建数组()
输出 "空数组成员数: " + 取数组成员数(空数组)
' 创建带初始值的索引数组
变量 水果数组 = 创建数组("苹果", "香蕉", "橙子")
输出数组(水果数组)
' 注:PHP 数组支持直接用 [索引] 访问,等价于 PHP 的 $arr[0]
输出 "水果数组的第1个成员是: " + 水果数组[0]
' 创建关联数组(PHP特色:字符串键名)
变量 学生数组 = 创建数组()
学生数组["学号"] = "1001"
学生数组["姓名"] = "张三"
学生数组["性别"] = "男"
输出数组(学生数组)
' 创建多维数组(嵌套关联数组)
变量 学生信息 = 创建数组()
学生信息["1001"] = 创建数组("张三", "男", 18)
输出数组(学生信息)
' 使用短数组语法创建关联数组(等价于 PHP 的 ["键"=>值] 语法)
变量 学生 = ["学号"=> 1, "姓名"=> "张三", "性别"=> "男"]
输出数组(学生)
函数:合并数组(...数组对象)
把一个或多个数组合并为一个数组。
' 合并两个索引数组
变量 数组1 = 创建数组("苹果", "香蕉")
变量 数组2 = 创建数组("橙子", "葡萄")
变量 合并结果 = 合并数组(数组1, 数组2)
输出数组(合并结果)
' 合并关联数组(注:PHP中相同字符串键会被覆盖,数字键会被重新索引)
变量 配置1 = ["主机"=> "localhost", "端口"=> 3306]
变量 配置2 = ["用户名"=> "root", "端口"=> 3307]
变量 合并配置 = 合并数组(配置1, 配置2)
输出数组(合并配置) ' 端口为3307(后者覆盖前者)
函数:添加成员(数组对象,...数组值)
将一个或多个元素插入数组的末尾(入栈)、返回新数组的元素个数。
' 向数组末尾添加元素
变量 水果数组 = 创建数组("苹果", "香蕉")
变量 新数量 = 添加成员(水果数组, "橙子", "葡萄")
输出数组(水果数组)
输出 "数组现在的成员数: " + 新数量
' 向关联数组添加成员(注:添加成员对关联数组追加数字键成员)
变量 学生 = ["姓名"=> "张三"]
添加成员(学生, "男", 18)
输出数组(学生) ' 姓名为张三,0=>男,1=>18
函数:取数组成员数(数组对象)
返回数组中元素的数量。
' 获取索引数组元素数量
变量 水果数组 = 创建数组("苹果", "香蕉", "橙子", "葡萄")
变量 成员数 = 取数组成员数(水果数组)
输出 "水果数组共有" + 成员数 + "个元素"
' 获取关联数组元素数量(PHP特色:关联数组同样可统计)
变量 学生信息 = ["姓名"=> "李四", "年龄"=> 22, "专业"=> "计算机"]
变量 信息项数 = 取数组成员数(学生信息)
输出 "学生信息共有" + 信息项数 + "项"
' 获取多维数组的顶层成员数(注:不递归统计子数组)
变量 班级 = [
"1001"=> ["张三", "男"],
"1002"=> ["李四", "女"]
]
输出 "班级人数: " + 取数组成员数(班级) ' 2
函数:取成员是否存在(成员值,数组对象)
查询某个成员值是否在数组中存在、如果存在返回真;否则返回假。
' 检查索引数组中是否存在特定值
变量 水果数组 = 创建数组("苹果", "香蕉", "橙子")
变量 是否包含苹果 = 取成员是否存在("苹果", 水果数组)
输出 "是否包含苹果: " + 是否包含苹果
变量 是否包含西瓜 = 取成员是否存在("西瓜", 水果数组)
输出 "是否包含西瓜: " + 是否包含西瓜
' 检查关联数组中的值(注:PHP 默认弱类型比较,0=="abc" 为真,需注意)
变量 配置 = ["状态"=> "active", "等级"=> 0]
变量 是否启用 = 取成员是否存在("active", 配置)
输出 "是否启用: " + 是否启用 ' 真
函数:查找成员(成员值,数组)
搜索数组中给定的值并返回键名;如果在数组中找到指定的键值,则返回对应的键名,否则返回假。
' 在关联数组中查找值并返回键名(PHP特色:返回字符串键名)
变量 学生数组 = ["姓名"=> "张三", "年龄"=> 20, "成绩"=> 95]
变量 键名 = 查找成员("张三", 学生数组)
如果(键名)
输出 "找到值'张三',键名为: " + 键名 ' 姓名
否则
输出 "未找到值'张三'"
结束 如果
' 在索引数组中查找值返回数字键名
变量 水果 = 创建数组("苹果", "香蕉", "橙子")
变量 索引 = 查找成员("香蕉", 水果)
如果(索引 != 假)
输出 "香蕉的索引是: " + 索引 ' 1
结束 如果
学习要点
| 知识点 | 代码示例 | 说明 |
|---|---|---|
| PHP数组本质 | ["学号"=> 1, "姓名"=> "张三"] | 有序映射,索引数组与关联数组统一为数组类型 |
| 关联数组创建 | 数组["键"] = 值 / [键=>值] | PHP特色,用数组承载键值对,字符串键名 |
| 短数组语法 | [键=>值, 键=>值] | 等价 PHP [... ] 短语法;注意用 => 而非 : |
| 输出函数 | 输出 值 / 输出数组(数组) | 后端输出到响应体;对应 PHP echo/print_r |
| 数组访问 | 数组[0] / 数组["键名"] | 索引和键名都用方括号访问,统一为数组语法 |
| 合并覆盖规则 | 合并数组(数组1, 数组2) | 关联数组相同字符串键后者覆盖前者;数字键重新索引 |
| 成员数统计 | 取数组成员数(数组) | 索引/关联数组均适用;多维数组默认只统计顶层,不递归 |
| 查找返回值 | 查找成员(值, 数组) | 关联数组返回字符串键名;索引数组返回数字键名;未找到返回 假 |
| 弱类型比较 | 取成员是否存在(0, ["abc"]) | PHP 默认弱类型,0=="abc" 为真;需注意类型陷阱 |
相关文档
- 文档
服务端(PHP)函数_字符串操作—— 后端字符串处理函数 - 文档
服务端(PHP)函数_数据操作类—— 后端数据操作函数 - 文档
服务端(PHP)函数_数学运算—— 后端数学运算函数 - 文档
轻语言网站:变量与数组与对象的定义—— 变量、对象、数组的基本语法