On Jul 6, 2008, at 305PM, Ron Piggott wrote:
I am trying to scramble individual words and/or phrases.
When it is a phrase I would like to keep the letters of each word
together, with a space between each one. The code I have so far is
below. I use PHP 4.4.7. The code below is fine for a single word; it
is phrases that I am now trying to accommodate.
$orig_phrase = 'rise and shine';
// Split the phrase into an array with each word as an element
$array_phrase = explode(' ',$orig_phrase);
// Cycle through the array processing one word at a tie
foreach($array_phrase as $key => $value)
{
// $orig_value is used in the do while loop to ensure that the
"shuffled" string is not the original string.
$orig_value = $value;
// Shuffle the string, and continue to do so until the returned
string is not the original string
do{
$value = str_shuffle($value);
} while($value == $orig_value);
// Uppercase value
$value = strtoupper($value);
// Insert a space after every letter
$value = chunk_split($value,1,' ');
// Set array value to newly formatted version
$array_phrase[$key] = $value;
}
// I'm using so it will echo and be obvious that there are two
spaces between words.
$scramble_phrase = implode(' ',$array_phrase);
echo $orig_phrase;
echo '<br />';
echo $scramble_phrase;
Everything after the do...while loop can be easily combined into one
line; I left it as separate lines for clarity.
Brady