服务端(PHP)函数_数组操作

文档概述

轻语言网站**后端(PHP)**开发中的数组操作相关函数、用于处理数组的创建、修改、查询和转换,包含数组创建、合并、添加、查找、删除、排序等数组操作功能,常用于数据处理、列表管理、批量操作等场景。

⚠️ 使用限制说明

  • 本文档内函数仅限在轻语言后端文件 .sph 代码中使用,用于编写服务端逻辑(编译后输出为 PHP 代码在服务器执行)。
  • 不得在编写前端页面 .spl 代码中使用,更禁止与 JS 代码混合使用
  • 编写前端请使用 前端(JavaScript)函数_* 类目下的中文函数;服务端只能使用 服务端(PHP)函数_* 类目下的中文函数。
  • 前后端虽存在同名函数(如 创建数组取数组成员数),但底层实现与运行环境完全不同,严禁混用。

💡 PHP 原生英文函数使用说明

  • 轻语言后端支持直接调用 PHP 原生英文函数(如 print_r()count()array_keys()in_array() 等)。
  • 当遇到轻语言未封装中文函数、但 PHP 原生函数可用时,可直接使用原生英文函数。
  • 仅支持使用原生英文函数名严禁使用 PHP 原生语法格式和英文关键字(如 if(){}for(){}functionclassecho 等控制结构与语法关键字)。
  • 控制结构必须使用轻语言中文关键字:如果...否则...结束 如果变量循环...结束循环函数 ... 结束 函数 等。
  • 注:->(对象方法调用)、=>(数组键值分隔)为轻语言本身支持的语法符号,可正常使用。

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)函数_数学运算 —— 后端数学运算函数
  • 文档轻语言网站:变量与数组与对象的定义 —— 变量、对象、数组的基本语法