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

PHP中如何按指定字符位置截取字符串并转为数组

搞定指定子串截取并存数组的方案

嘿,我明白你为啥头疼str_split()了——这货确实只能从字符串开头拆成单个字符,没法直接截取指定范围的子串再塞数组里。不过咱们分两步走就能轻松解决:

具体操作步骤

首先,先用substr()把你要的子串截出来,再把这个子串放进数组就行。

代码示例

假设你的原始字符串是:

$originalStr = "20173400157080082";

根据你要的结果Array ( [0] => 400157 ),咱们先确认PHP里字符串是从0开始计数的。子串400157在原字符串里是从第6个字符(1开始数)也就是索引5的位置开始,一共6个字符。所以代码这么写:

$originalStr = "20173400157080082";
// 截取子串:起始索引5,长度6
$targetSubstr = substr($originalStr, 5, 6);
// 把截好的子串放进数组
$resultArray = [$targetSubstr]; // 或者用array($targetSubstr),两种写法都可以

// 打印结果看看
print_r($resultArray);

运行这段代码后,输出就是你想要的:

Array
(
    [0] => 400157
)

小补充

  • 要是你对起始位置的计数习惯是从1开始,只需要把substr()的第二个参数(起始索引)改成「你要的起始位置-1」就行。比如你提到的第4到第7位,如果是指从1开始的计数,那索引就是3到6,截取长度是4,但这样得到的是7340,显然和你的预期不符,所以咱们按你要的结果反推的起始位置是对的。
  • 要是之后需要把这个子串拆成单个字符的数组,再在后面加一句$charArray = str_split($targetSubstr);就行,但根据你的需求,直接存整个子串就OK啦。

内容的提问来源于stack exchange,提问作者Shayan Ishaq

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:34:37