所以我试图根据空间对整个字符串进行标记,然后根据这些标记的长度将这些标记放入不同的组中。我得到了如何按空格分割字符串,但我坚持根据长度将它们放入不同的组中。例如,我有一个字符串
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/>";
}
}
任何帮助都会很棒!谢谢!
答案 0 :(得分:1)
您只需使用str_word_count
功能以及简单foreach
和strlen
就像
$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);
答案 1 :(得分:1)
你几乎在那里,而不是试图弄清楚计数,使用strlen()
使用每个字符串/单词中的实际字母数:
$words = explode(" ", $s);
$a = array();
foreach($words as $word){
$a["Group " . strlen($word)][] = $word;
}
print_r(array_reverse($a));
答案 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/>";
}
现在编辑然后回答使用此