PHP如何遍历数组时跳过非b开头的元素,仅输出首字母为b的项
PHP过滤首字母为b的数组元素实现方法
方法1:在原有循环中新增判断逻辑
直接在遍历的时候判断元素首字符是否符合要求,代码修改量最小:
<?php $letters = array("a", "b", "aa", "c", "bb", "bcb"); foreach( $letters as $letter ){ // PHP 8.0+ 可用原生str_starts_with方法直接判断前缀 if (str_starts_with($letter, 'b')) { echo "$letter <br />"; } // 低版本PHP兼容写法 // if (substr($letter, 0, 1) === 'b') { // echo "$letter <br />"; // } } ?>
方法2:先过滤数组再遍历
如果后续还要复用过滤后的结果,可以先用array_filter处理数组:
<?php $letters = array("a", "b", "aa", "c", "bb", "bcb"); $bStartLetters = array_filter($letters, function($item) { return substr($item, 0, 1) === 'b'; }); foreach( $bStartLetters as $letter ){ echo "$letter <br />"; } ?>
补充说明
如果需要同时匹配大写B的场景,可新增大小写转换逻辑:
if (strtolower(substr($letter, 0, 1)) === 'b') { // 匹配逻辑 }
内容的提问来源于stack exchange,提问作者SA Bappy
相关产品推荐
相关产品推荐

