news 2026/4/24 7:08:38

第 03 章:数组与字符串处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
第 03 章:数组与字符串处理

第 03 章:数组与字符串处理

本章要点:数组和字符串是 PHP 最常用的数据类型。掌握它们的高效处理方法,是成为 PHP 高手的必经之路。


3.1 索引数组与关联数组

3.1.1 数组创建与初始化

<?php// 索引数组(数字下标)$fruits=['apple','banana','orange'];$numbers=array(1,2,3,4,5);// 旧语法,仍支持$mixed=[1,'two',3.0,true,null];// 关联数组(键值对)$user=['id'=>1,'name'=>'John Doe','email'=>'john@example.com','age'=>25];// 嵌套数组$company=['name'=>'Tech Corp','departments'=>['IT'=>[['name'=>'Alice','role'=>'Developer'],['name'=>'Bob','role'=>'Designer']],'HR'=>[['name'=>'Charlie','role'=>'Manager']]],'founded'=>2020];// 数组解构(PHP 7.1+)[$first,$second,$third]=$fruits;echo$first;// apple['name'=>$name,'email'=>$email]=$user;echo$name;// John Doe// 带默认值的解构[$a,$b,$c='default']=[1,2];echo$c;// default// 跳过某些元素[,$skip,$take]=$fruits;echo$skip;// banana

3.1.2 数组访问与修改

<?php$colors=['red','green','blue'];// 访问元素echo$colors[0];// redecho$colors[-1];// PHP 7.1+: blue(最后一个)// 修改元素$colors[1]='yellow';$colors[]='purple';// 追加// 关联数组$user['city']='Beijing';// 添加$user['age']=26;// 修改// 多维数组访问echo$company['departments']['IT'][0]['name'];// Alice// 安全访问(避免警告)$value=$array['key']??'default';$value=isset($array['key'])?$array['key']:'default';// 批量修改array_walk($colors,fn(&$color)=>$color=strtoupper($color));

3.1.3 数组常用操作

<?php$items=[1,2,3,4,5];// 获取长度$count=count($items);// 5$count=sizeof($items);// 5(count 的别名)// 首尾操作$first=reset($items);// 1(第一个值)$last=end($items);// 5(最后一个值)$firstKey=array_key_first($items);// 0$lastKey=array_key_last($items);// 4// 弹出元素$last=array_pop($items);// 5(删除并返回最后一个)$first=array_shift($items);// 1(删除并返回第一个)// 添加元素array_push($items,6,7);// 末尾添加多个array_unshift($items,0,-1);// 开头添加多个// 切片$slice=array_slice($items,2,3);// 从索引 2 开始取 3 个$slice=array_slice($items,-3);// 最后 3 个$slice=array_slice($items,1,2,true);// 保持键名// 替换array_splice($items,2,1,['a','b']);// 从索引 2 删除 1 个,插入 2 个// 合并$merged=array_merge($items,$colors);$combined=$items+$colors;// 只添加不存在的键// 去重$unique=array_unique($items);// 翻转$reversed=array_reverse($items);$flipped=array_flip($items);// 键值互换

3.1.4 实战:数组操作类

<?php/** * 数组工具类 * 封装常用数组操作 */classArrayUtil{/** * 按指定键分组 */publicstaticfunctiongroupBy(array$items,string$key):array{$result=[];foreach($itemsas$item){$groupKey=is_array($item)?$item[$key]:$item->$key;$result[$groupKey][]=$item;}return$result;}/** * 提取指定列 */publicstaticfunctionpluck(array$items,string$key):array{returnarray_column($items,$key);}/** * 深度合并数组 */publicstaticfunctionmergeDeep(array...$arrays):array{$result=array_shift($arrays);foreach($arraysas$array){foreach($arrayas$key=>$value){if(is_array($value)&&isset($result[$key])&&is_array($result[$key])){$result[$key]=self::mergeDeep($result[$key],$value);}else{$result[$key]=$value;}}}return$result;}/** * 树形结构转列表 */publicstaticfunctionflattenTree(array$tree,string$childrenKey='children'):array{$result=[];foreach($treeas$item){$children=$item[$childrenKey]??[];unset($item[$childrenKey]);$result[]=$item;if($children){$result=array_merge($result,self::flattenTree($children,$childrenKey));}}return$result;}/** * 列表转树形结构 */publicstaticfunctionlistToTree(array$items,string$idKey='id',string$parentKey='parent_id',string$childrenKey='children'):array{$grouped=[];$tree=[];foreach($itemsas$item){$grouped[$item[$idKey]]=$item;}foreach(
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/24 7:03:27

Phi-4-mini-flash-reasoning参数详解:Temperature/TopP/MaxTokens组合策略

Phi-4-mini-flash-reasoning参数详解&#xff1a;Temperature/TopP/MaxTokens组合策略 1. 模型概述 Phi-4-mini-flash-reasoning是一款专为复杂推理任务优化的轻量级文本生成模型。与通用大模型不同&#xff0c;它特别擅长处理需要多步推理和结构化分析的场景&#xff0c;比如…

作者头像 李华
网站建设 2026/4/24 6:57:06

【间谍前哨】全球数千万台路由器正被“劫持”,你的Wi-Fi可

【间谍前哨】全球数千万台路由器正被“劫持”&#xff0c;你的Wi-Fi可能已成窃密通道&#xff01;黑客悄然绘制全球数字通信地图 你的路由器&#xff0c;可能已成为黑客的“间谍前哨”。 你是否想过&#xff0c;家里那个默默工作的路由器&#xff0c;可能正被黑客远程操控&…

作者头像 李华
网站建设 2026/4/24 6:39:59

从芯片到云端:基于STM32与CODESYS的轻量化工业PLC开发实战

1. 为什么选择STM32CODESYS做工业PLC&#xff1f; 在工业自动化领域&#xff0c;PLC&#xff08;可编程逻辑控制器&#xff09;就像设备的大脑&#xff0c;负责控制各种机械动作。传统PLC价格昂贵&#xff0c;开发周期长&#xff0c;而基于STM32和CODESYS的方案&#xff0c;成本…

作者头像 李华