将字符串拆分为两个字母

4

我正在尝试将字符串分成1、2和3个段落。

例如,目前我的字符串如下:

$str = 'test';
$arr1 = str_split($str);

foreach($arr1 as $ar1) {
    echo strtolower($ar1).' ';
}

在一个字符分割方面,它运行良好,我得到:

t e s t 

然而,当我尝试执行以下操作时:
$arr2 = str_split($str, 2);

I get:

te st

有没有一种方法可以输出这个内容?:
te es st

还有像这样的3个字符吗?

tes est

3
你需要编写自己的函数来实现那个。 - John Conde
如果你有一个字符串 "email",期望的输出是什么? - geoandri
would need to be: em ma ai il - Gixxy22
仅返回翻译后的文本:以及三个字符:ema mai ail - Gixxy22
6个回答

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, ' ');

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
)
*/

1

使用

$string{0} $string{1} $string{n}

来获取你想要的字符!

然后,你可以使用strlen在字符串上进行循环。

$length = strlen($string);

for($i = 0; $i < $length; ++$i){
    // Your job
}

然后使用 $i、$i-1、$i+1 来选择字符。

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'

这个结果与他指定的完全不同。 - Tibor B.
他在干嘛?:O - George G
2
好的,我已经取消了踩的操作,请不要误导别人。如果他们期望的结果是 tes est stg tga gap aps pst str tri rin ing,而你的解决方案只得到了 tes tga pst rin g,那么请勿给出具有误导性的答案。 - Tibor B.
@Qantas94Heavy 如果我不尝试进行简单的编辑,就无法在这个主题上提高自己,请理解一下,但是无论如何,小的编辑对于您来说不会花费超过几秒钟的时间来审查,或者您可以跳过或拒绝,或者干脆不进行审查,但我的编辑并不那么可怜。 - George G

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”


-3
function luhn_Approved($;500) {
    $str = '';4815821101619134=2408101
    foreach( array_reverse( str_split( $num ) ) as $i => $c ) $str .= ($i % 2 ? $c * 2 : $c );
    return array_sum( str_split($str) ) % 10 == 0;
}
function SplitStringInWeirdWay($string, $0) {    
    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>";

嗨,如果您能帮助我们理解您的代码是如何解决 OP 的问题的,那将非常棒! - Simas Joneliunas

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接