0

文字列の最後の 3 つの単語を先頭に移動したいと考えています。たとえば、次の 2 つの変数があります。

$vari1 = "It is a wonderful goodbye letter that ultimately had a happy ending.";
$vari2 = "The Science Museum in London is a free museum packed with interactive exhibits.";

次のようになる必要があります。

"A happy ending - It is a wonderful goodbye letter that ultimately had."
"With interactive exhibits - The Science Museum in London is a free museum packed."
4

4 に答える 4

3

爆発、再配置、そして爆縮が機能するはずです。こちらの例をご覧ください

$array = explode(" ", substr($input_string,0,-1));
array_push($array, "-");
for($i=0;$i<4;$i++)
   array_unshift($array, array_pop($array));
$output_string = ucfirst(implode(" ", $array)) . ".";
于 2012-07-21T04:42:20.997 に答える
1
$split = explode(" ",$vari1);
$last = array_pop($split);
$last = preg_replace("/\W$/","",$last);
$sec = array_pop($split);
$first = array_pop($split);
$new = implode(" ",array(ucfirst($first),$sec,$last)) . " - " . implode(" ",$split) . ".";

または同様の方法でうまくいくはずです。

于 2012-07-21T04:41:21.570 に答える
1

優しい私を愛してください。<3

function switcheroo($sentence) {
    $words = explode(" ",$sentence);
    $new_start = "";
    for ($i = 0; $i < 3; $i++) {
        $new_start = array_pop($words)." ".$new_start;
    }
    return ucfirst(str_replace(".","",$new_start))." - ".implode(" ",$words).".";
}
于 2012-07-21T04:41:49.070 に答える
1

これにより、わずか 2 行のコードで必要な出力とまったく同じ結果が得られます。

$array = explode(' ', $vari1);
echo ucfirst(str_replace('.', ' - ', join(' ', array_merge(array_reverse(array(array_pop($array), array_pop($array), array_pop($array))), $array)))) . '.';
于 2012-07-21T05:06:20.383 に答える