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

PHP实现字符串层级拆分:获取递进式路径字符串

解决路径字符串递进拆分问题

嘿,我来帮你搞定这个需求!你想要把$tara = 'wordpress/corporate/business';拆分成逐步递进的三个路径字符串:'wordpress'、'wordpress/corporate'、'wordpress/corporate/business'对吧?先看看你原来的代码问题在哪儿:

你用explode('/', $tara)拆分路径部分是对的,但后续用substr_replace的思路走偏了——而且代码里的$i变量未定义,count($l)也用错了(字符串长度应该用strlen(),但就算修正也达不到预期效果)。

下面给你两种简单直接的实现方法:

方法一:循环累加拼接路径

这种方法直观易懂,逐步构建每一层的路径:

$tara = 'wordpress/corporate/business';
$parts = explode('/', $tara);
$result = [];
$currentPath = '';

foreach ($parts as $part) {
    // 若当前路径不为空,先加斜杠再拼接部分;为空则直接拼接
    $currentPath .= ($currentPath ? '/' : '') . $part;
    $result[] = $currentPath;
}

// 输出结果
foreach ($result as $item) {
    var_dump($item);
}

方法二:利用array_slice和implode拼接

这种方法更简洁,通过截取数组前N个元素再拼接:

$tara = 'wordpress/corporate/business';
$parts = explode('/', $tara);
$result = [];

// 循环截取前1、2、3个元素,再拼接成路径
for ($i = 1; $i <= count($parts); $i++) {
    $result[] = implode('/', array_slice($parts, 0, $i));
}

// 输出结果
foreach ($result as $item) {
    var_dump($item);
}

两种方法运行后,都会输出你期望的三个字符串结果~

内容的提问来源于stack exchange,提问作者Siska Brilian

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 03:22:41