ich habe eine string.was ist der beste weg in php um buchstaben in wörter
Ich möchte die Buchstaben in jedem Wort umkehren nicht umgekehrt die Wörter Reihenfolge.
wie - 'meine Zeichenfolge'
sollte
'ym gnirts'
ich habe eine string.was ist der beste weg in php um buchstaben in wörter
Ich möchte die Buchstaben in jedem Wort umkehren nicht umgekehrt die Wörter Reihenfolge.
wie - 'meine Zeichenfolge'
sollte
'ym gnirts'
Dies sollte funktionieren:
$words = explode(' ', $string);
$words = array_map('strrev', $words);
echo implode(' ', $words);
Oder als Einzeiler:
echo implode(' ', array_map('strrev', explode(' ', $string)));
echo implode(' ', array_reverse(explode(' ', strrev('my string'))));
Dies ist erheblich schneller als jede Zeichenfolge des Arrays nach dem Explodieren der ursprünglichen Zeichenfolge umkehren.
Richtig, da Array-Funktionen schneller als String-Funktionen sind. Ist es wichtig? Nicht, wenn Sie nicht gleichzeitig einige Milliarden Saiten umkehren. – deceze
Dies sollte den Trick:
function reverse_words($input) {
$rev_words = [];
$words = split(" ", $input);
foreach($words as $word) {
$rev_words[] = strrev($word);
}
return join(" ", $rev_words);
}
'split()' ist Teil der POSIX Regex-Erweiterung und wird in PHP 5.3.0 zugunsten von Perl-Compatible Regex (PCRE) veraltet. Aber du brauchst sowieso keine Regex, du brauchst nur 'explode()'. –
Ah, gut zu wissen, danke. –
ich tun würde:
$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
Functionified:
<?php
function flipit($string){
return implode(' ',array_map('strrev',explode(' ',$string)));
}
echo flipit('my string'); //ym gnirts
?>
+1: Der array_map ist eine nette Geste! –
knahT uoy: o))) – deceze