拆分一个字符串,然后按长度

时间:2016-02-19 06:05:36

标签: php

所以我试图根据空间对整个字符串进行标记,然后根据这些标记的长度将这些标记放入不同的组中。我得到了如何按空格分割字符串,但我坚持根据长度将它们放入不同的组中。例如,我有一个字符串

  

Hello world,这是一个测试

因此,在按空格分割该字符串后,我想检查每个标记的长度,然后将它们放入不同的组中,如

  

第1组:

     

第2组:是

     

第3组:测试,这个

     

第4组:你好,世界

到目前为止,这是我的代码:

$strLength = count($string);
$stringSpl = explode(" ", $string);

    if ($strLength <=  2) { //Here I try to check if the length is less than or equal 2 then place it into group 1
        echo "Group 1: ";

        foreach ($stringSpl as $key) {
            echo $key . "<br/>";
        }
    }

任何帮助都会很棒!谢谢!

4 个答案:

答案 0 :(得分:1)

您只需使用str_word_count功能以及简单foreachstrlen就像

一样
$str = "Hello world, this is a test";
$str_arr = str_word_count($str,1);
$result = array();
foreach($str_arr as $v){
    $result["Group ".strlen($v)][] = $v;
}
print_r($result);

Demo

答案 1 :(得分:1)

你几乎在那里,而不是试图弄清楚计数,使用strlen()使用每个字符串/单词中的实际字母数:

$words = explode(" ", $s);
$a = array();
foreach($words as $word){
    $a["Group " . strlen($word)][] = $word;
}

print_r(array_reverse($a));

Example/Demo

答案 2 :(得分:1)

这个怎么样?以上答案非常好,但这很容易

<?
    $string = "Hello world, this is a test";
    $strings = array();
    $stringSpl = explode(" ", $string);

    foreach ($stringSpl as $key) {
        $strings[strlen($key)][] = $key;
    }

    $idx = 1;
    foreach ($strings as $array) {
        echo "group ".($idx++).": ";
        foreach ($array as $key) {
            echo $key." ";
        }
        echo "<br>";
    }
?>

答案 3 :(得分:1)

试试这个

$str = "Hello world, this is a test";
$str_arr = str_word_count($str,1);
$result = array();
$i=1;


foreach($str_arr as $v){
$result["Group ".strlen($v)][] = $v;

}
$n=count($result);
echo "<br/>";
$result_array=array_reverse($result);
foreach($result_array as $key=>$value)
{$gorup_value="";

echo $key.' ' ;
$count=count($value);
$i=1;
foreach($value as $key1=>$value1)
{
        $gorup_value .= $value1.',' ;
}
echo    rtrim( $gorup_value , ',');
echo "<br/>";
}

现在编辑然后回答使用此