我正在尝试将字符串拆分为1,2和3段。
例如,我目前有这个:
$str = 'test';
$arr1 = str_split($str);
foreach($arr1 as $ar1) {
echo strtolower($ar1).' ';
}
在1个字符拆分中效果很好,我得到:
t e s t
然而,当我尝试:
$arr2 = str_split($str, 2);
我明白了:
te st
有没有办法可以输出这个? :
te es st
然后还有3个这样的字符?
tes est
答案 0 :(得分:5)
这是:
function SplitStringInWeirdWay($string, $num) {
for ($i = 0; $i < strlen($string)-$num+1; $i++) {
$result[] = substr($string, $i, $num);
}
return $result;
}
$string = "aeioubcdfghjkl";
$array = SplitStringInWeirdWay($string, 4);
echo "<pre>";
print_r($array);
echo "</pre>";
PHPFiddle链接:http://phpfiddle.org/main/code/1bvp-pyk9
之后,您可以简单地在一行中回显它,例如:
echo implode($array, ' ');
答案 1 :(得分:2)
尝试此操作,将$length
更改为1或3:
$string = 'test';
$length = 2;
$start = -1;
while( $start++ + $length < strlen( $string ) ) {
$array[] = substr( $string, $start, $length );
}
print_r( $array );
/*
Array
(
[0] => te
[1] => es
[2] => st
)
*/
答案 2 :(得分:1)
使用
$string{0} $string{1} $string{n}
获取你想要的角色!
然后你可以使用strlen
在字符串上使用循环$length = strlen($string);
for($i = 0; $i < $length; ++$i){
// Your job
}
然后使用$ i,$ i - 1,$ i + 1来挑选字符。
答案 3 :(得分:1)
最简单的方法是,您可以使用chunk_split:
来完成$str = "testgapstring";
$res = chunk_split($str, 3, ' ');
echo $res; // 'tes tga pst rin g '
但是你最后还有额外的空格符号,如果你需要这个是一个数组的东西可以工作:
$chunked = chunk_split($str, 3, ' ');
$arr = explode(' ', rtrim($chunked));
其他示例:
echo $chunked = rtrim(chunk_split('test', 2, ' ')); // 'te st'
答案 4 :(得分:1)
<?php
function my_split($string, $count){
if(strlen($string) <= $count){
return $string;
}
$my_string = "";
for($i; $i< strlen($string) - $count + 1; $i++){
$my_string .= substr($string, $i, $count). ' ';
}
return trim($my_string);
}
echo my_split('test', 3);
?>
并将有“tes est”