将字符串拆分为2个字母

时间:2014-10-21 14:03:32

标签: php split strsplit

我正在尝试将字符串拆分为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

5 个答案:

答案 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”