You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP查找以Mon开头的字符串并存入数组0位的实现方法

PHP筛选指定前缀单词实现方案

你原有代码存在两个基础错误,先修正:

  • 数组无法直接通过echo输出,查看数组内容需要用print_r()或var_dump()
  • 转义换行符\n必须放在双引号内才会生效,单引号包裹时会被当成普通字符串输出

要筛选所有以Mon开头的单词并存入新数组0号位置,优先使用PHP原生字符串函数实现,性能比正则匹配更高,代码可读性也更好。

完整实现代码(PHP 8.0+ 推荐写法)

<?php
$towns = 'Monday Tuesday Sunday Friday';
$towns1 = strtolower($towns);
$words = explode(" ", $towns1);

$newArr = [];
// 筛选所有前缀为mon的单词(已转小写,所以匹配小写前缀)
$matched = array_filter($words, function($item) {
    return str_starts_with($item, 'mon');
});
// 将匹配结果存入新数组0号位
$newArr[0] = array_values($matched);

// 测试输出结果
print_r($newArr);

低版本PHP兼容写法(PHP 8.0以下)

如果你的运行环境低于PHP8.0,没有原生str_starts_with()函数,把筛选逻辑里的判断替换成strpos()判断即可:

$matched = array_filter($words, function($item) {
    // 严格等于0代表字符串从位置0开始就是目标前缀
    return strpos($item, 'mon') === 0;
});

可选调整

如果你确定原字符串里只会有一个匹配结果,不需要存所有匹配词的集合,可以直接把匹配到的第一个词存入0号位:

$newArr[0] = !empty($matched) ? reset($matched) : '';

上述代码运行后,匹配到的monday就会按要求存入新数组的0号位置。

内容的提问来源于stack exchange,提问作者Alex Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 00:54:27