PHP中设置数组元素与结构的五种方法:一、array()函数创建空、索引、关联及混合数组;二、[]语法动态追加或指定键赋值;三、array_merge()合并并重设索引/键名;四、array_fill()和array_fill_keys()批量填充;五、foreach引用批量修改。
在PHP中,数组是常用的数据结构,用于存储多个值。设置数组元素与结构涉及创建数组、添加或修改元素、定义索引类型(索引数组或关联数组)以及嵌套结构。以下是几种常见且实用的方法:
array() 是PHP中最基础的数组构造方式,支持同时定义索引数组和关联数组,适用于一次性声明带初始值的数组结构。
1、创建空索引数组:
使用 array() 不传参数,生成一个空数组,后续可动态追加元素。
2、创建含数值索引的数组:
array(10, 20, 30) 将生成索引为 0、1、2 的数组,对应值分别为 10、20、30。
3、创建关联数组:
array("name" => "Alice", "age" => 25) 将生成键名为 "name" 和 "age" 的数组,其值分别被赋为字符串和整数。
4、混合索引与关联元素:
array(0 => "first", "second", "type" => "string") 中,"second" 会自动获得索引 1,而 "type" 作为显式键名独立存在。
自PHP 5.4起,[] 语法成为 array() 的简写形式,更简洁;同时支持在
已有数组上直接追加或指定键名赋值,适合运行时动态构建结构。
1、声明空数组:
$arr = [];
2、向索引数组末尾追加元素:
$arr[] = "new_item"; 此时新元素将被赋予下一个整数索引(如原数组长度为3,则新索引为3)。
3、按指定键名设置关联元素:
$arr["status"] = "active"; 此操作会创建或覆盖键名为 "status" 的元素。
4、设置多维数组元素:
$arr["user"]["id"] = 123; 若 $arr["user"] 不存在,PHP会自动创建子数组(需确保中间层级未被声明为非数组类型)。
该函数用于合并两个或多个数组,对索引数组会重新编号,对关联数组则保留键名(后出现的同名键会覆盖前者),常用于组合配置、拼接数据集或重构数组层级。
1、合并两个索引数组:
$a = [1, 2]; $b = [3, 4]; $c = array_merge($a, $b); 结果为 [0=>1, 1=>2, 2=>3, 3=>4]。
2、合并关联数组:
$x = ["a" => 1, "b" => 2]; $y = ["b" => 20, "c" => 3]; $z = array_merge($x, $y); 键 "b" 的值被更新为 20。
3、重置索引并合并混合数组:
若需强制连续数字索引,可先用 array_values() 处理再合并,例如 array_merge(array_values($arr1), array_values($arr2))。
当需要初始化大量具有统一值的数组元素时,这两个函数可避免循环赋值,提升代码可读性与执行效率。
1、填充索引数组:
$nums = array_fill(0, 5, "default"); 生成索引 0 到 4、每个值均为 "default" 的数组。
2、填充关联数组:
$keys = ["name", "email", "phone"]; $defaults = array_fill_keys($keys, null); 生成键为 $keys 各项、值全为 null 的数组。
3、嵌套填充示例:
$matrix = array_fill(0, 3, array_fill(0, 4, 0)); 创建 3×4 的二维零值数组。
当需基于原数组内容批量调整键名、值类型或嵌套关系时,foreach 配合引用(&$value)可直接在原数组上操作,避免重建开销,尤其适用于大数组的就地重构。
1、修改所有值为大写:
foreach ($arr as &$val) { $val = strtoupper($val); }
2、为每个元素添加前缀键:
$new_arr = []; foreach ($arr as $k => $v) { $new_arr["item_" . $k] = $v; }
3、将一维数组转为键值对映射:
若 $list = ["a", "b", "c"],执行 foreach ($list as $v) { $map[$v] = true; } 后得到 ["a"=>true, "b"=>true, "c"=>true]。
4、注意:使用引用修改后,必须在循环结束后 unset($val),否则后续变量可能意外影响数组最后一个元素。
# php
# ai
# 键值对
# 代码可读性
# String
# Array
# NULL
# 关联数组
# 多维数组
# foreach
# 字符串
# 循环
# 数据结构
# 值类型
# map
# default
# 重构
# 键名
# 多个
# 适用于
# 多维
# 已有
# 均为
# 这两个
# 不存在
相关文章:
Android自定义控件实现温度旋转按钮效果
宝塔新建站点为何无法访问?如何排查?
如何通过虚拟主机空间快速建站?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
已有域名能否直接搭建网站?
活动邀请函制作网站有哪些,活动邀请函文案?
香港服务器部署网站为何提示未备案?
如何在阿里云虚拟机上搭建网站?步骤解析与避坑指南
如何用花生壳三步快速搭建专属网站?
如何快速生成可下载的建站源码工具?
如何高效完成独享虚拟主机建站?
如何在Ubuntu系统下快速搭建WordPress个人网站?
寿县云建站:智能SEO优化与多行业模板快速上线指南
深圳网站制作平台,深圳市做网站好的公司有哪些?
建站之星IIS配置教程:代码生成技巧与站点搭建指南
小型网站制作HTML,*游戏网站怎么搭建?
如何快速搭建虚拟主机网站?新手必看指南
MySQL查询结果复制到新表的方法(更新、插入)
东莞市网站制作公司有哪些,东莞找工作用什么网站好?
详解jQuery中基本的动画方法
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
用v-html解决Vue.js渲染中html标签不被解析的问题
如何选择域名并搭建高效网站?
logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?
如何在万网ECS上快速搭建专属网站?
制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?
网站好制作吗知乎,网站开发好学吗?有什么技巧?
简历在线制作网站免费,免费下载个人简历的网站是哪些?
如何通过商城自助建站源码实现零基础高效建站?
如何在橙子建站中快速调整背景颜色?
如何在万网自助建站平台快速创建网站?
如何访问已购建站主机并解决登录问题?
一键制作网站软件下载安装,一键自动采集网页文档制作步骤?
如何选择适配移动端的WAP自助建站平台?
建站之星ASP如何实现CMS高效搭建与安全管理?
如何通过.red域名打造高辨识度品牌网站?
建站之星如何一键生成手机站?
制作国外网站的软件,国外有哪些比较优质的网站推荐?
制作旅游网站html,怎样注册旅游网站?
招贴海报怎么做,什么是海报招贴?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
已有域名和空间如何快速搭建网站?
手机网站制作与建设方案,手机网站如何建设?
网站制作外包价格怎么算,招聘网站上写的“外包”是什么意思?
长沙企业网站制作哪家好,长沙水业集团官方网站?
如何设计高效校园网站?
上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?
大同网页,大同瑞慈医院官网?
如何彻底删除建站之星生成的Banner?
兔展官网 在线制作,怎样制作微信请帖?
*请认真填写需求信息,我们会在24小时内与您取得联系。