How to reverse the middle words of a string in PHP

1 Answer

0 votes
function reverseMiddleWords(string $s): string {
    // Split on one or more spaces
    $words = preg_split('/\s+/', $s);

    if (count($words) < 3) {
        return $s; // nothing to reverse
    }

    // Reverse characters of middle words
    for ($i = 1; $i < count($words) - 1; $i++) {
        $words[$i] = strrev($words[$i]);
    }

    return implode(' ', $words);
}

$input = "Hello how are you today";

echo reverseMiddleWords($input);

  
  
/*
run:
  
Hello woh era uoy today
  
*/

 



answered Dec 13, 2019 by avibootz
edited Dec 25, 2025 by avibootz
...