Book HomePHP CookbookSearch this book

1.5. Reversing a String by Word or Character

1.5.1. Problem

You want to reverse the words or the characters in a string.

1.5.2. Solution

Use strrev( ) to reverse by character:

print strrev('This is not a palindrome.');
.emordnilap a ton si sihT

To reverse by words, explode the string by word boundary, reverse the words, then rejoin:

$s = "Once upon a time there was a turtle.";
// break the string up into words
$words = explode(' ',$s);
// reverse the array of words
$words = array_reverse($words);
// rebuild the string
$s = join(' ',$words);
print $s;
turtle. a was there time a upon Once

1.5.3. Discussion

Reversing a string by words can also be done all in one line:

$reversed_s = join(' ',array_reverse(explode(' ',$s)));

1.5.4. See Also

Recipe 18.8 discusses the implications of using something other than a space character as your word boundary; documentation on strrev( ) at http://www.php.net/strrev and array_reverse( ) at http://www.php.net/array-reverse.



Library Navigation Links

Copyright © 2003 O'Reilly & Associates. All rights reserved.