0

スペースで区切られた単語を含む文字列があります。

単語の順序を逆にせずに、すべての単語の文字を逆にしたい。

my stringになりたいym gnirtsです。

4

6 に答える 6

6

これは機能するはずです:

$words = explode(' ', $string);
$words = array_map('strrev', $words);
echo implode(' ', $words);

またはワンライナーとして:

echo implode(' ', array_map('strrev', explode(' ', $string)));
于 2009-07-23T06:33:49.997 に答える
2
echo implode(' ', array_reverse(explode(' ', strrev('my string'))));

これは、元の文字列を分解した後、配列のすべての文字列を逆にするよりもかなり高速です。

于 2009-07-23T06:34:27.950 に答える
1

機能化:

<?php

function flipit($string){
    return implode(' ',array_map('strrev',explode(' ',$string)));
}

echo flipit('my string'); //ym gnirts

?>
于 2009-07-23T06:41:48.140 に答える
0

これでうまくいくはずです:

function reverse_words($input) {
    $rev_words = [];
    $words = split(" ", $input);
    foreach($words as $word) {
        $rev_words[] = strrev($word);
    }
    return join(" ", $rev_words);
}
于 2009-07-23T06:37:34.933 に答える
0

私はするだろう:

$string = "my string";
$reverse_string = "";

// Get each word
$words = explode(' ', $string);
foreach($words as $word)
{
  // Reverse the word, add a space
  $reverse_string .= strrev($word) . ' ';
}

// remove the last inserted space
$reverse_string = substr($reverse_string, 0, strlen($reverse_string) - 1);
echo $reverse_string;
// result: ym gnirts
于 2009-07-23T06:38:35.477 に答える