PHP 5.5中如何删除数组里不带OPTM前缀的元素?
实现方案(PHP 5.5 环境,使用unset实现)
核心逻辑
遍历数组获取每个元素的键和值,判断元素前缀是否为OPTM,不符合要求的元素通过对应键执行unset删除。
完整代码
// 原始数组 $array = array('OPTM3000', 'All-Stud','OPTM3002','MUSC1001','PATH3000', 'OPTM3004'); foreach ($array as $key => $item) { // 先判断字符长度是否满足前缀要求,再匹配前4位字符 if (strlen($item) < 4 || substr($item, 0, 4) !== 'OPTM') { unset($array[$key]); } } // 可选:如果需要重置数组的连续数字索引,执行下面一行 // $array = array_values($array); // 输出验证 var_dump($array);
注意事项
- PHP 5.5 不支持 8.0 版本新增的
str_starts_with方法,因此使用substr实现前缀匹配,兼容性符合版本要求 - 执行unset后数组会保留原始的键名,若需要连续的数字索引,可以调用
array_values()重置数组结构
内容的提问来源于stack exchange,提问作者IlludiumPu36
相关产品推荐
相关产品推荐

