我有以下代码:
$target = "abcwa";
for($w = 0; $w <=strlen($target)-1; $w++)
{
$str = str_split($target[$w],1); //a
$str_ = $str[$w];
echo "w:";$w;
echo $str_;
}// end for w
正在打印:
w:a
Warning: Undefined array key 1 in /in/n705C on line 8
w:
Warning: Undefined array key 2 in /in/n705C on line 8
w:
Warning: Undefined array key 3 in /in/n705C on line 8
w:
Warning: Undefined array key 4 in /in/n705C on line 8
w:
第8行是$str_ = $str[$w];
。
但是,目标是打印:w:aw:bw:cw:ww:a
怎么了?
2条答案
按热度按时间lhcgjxsq1#
你的循环有:
这通常是通过以下方式完成的:
但这里根本不需要任何循环。首先将字符串拆分为一个由单个字母组成的数组:
这为您提供:
['a', 'b', 'c', 'w', 'a']
然后将该数组重新组合成一个字符串,但每个元素之间有
"w:"
:这为您提供:
然后,只需添加您的前导
"w:"
:其产生:
或者,你可以在字符串的开头添加一个空格,这样split的开头就有一个额外的字符,以便内爆操作:
其产生:
(Note在这种情况下,输出中有一个额外的空间,如果这很重要的话。)
v8wbuo2f2#
我会放弃你的原始代码,因为它是冗长的,有多个失败的组件。
相反,只需使用regex在每个字符前插入所需的字符串即可。
代码:(Demo)
或者