2009-07-23 2 views

답변

6

이 작동합니다 :

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

또는 한 - 라이너 :

echo implode(' ', array_map('strrev', explode(' ', $string))); 
+0

일을 다음 array_map이 좋은 터치입니다! –

+3

knahT uoy : o))) – deceze

2
echo implode(' ', array_reverse(explode(' ', strrev('my string')))); 

원래의 문자열을 폭발시킨 후 배열의 모든 문자열을 역전하는 것보다 훨씬 빠릅니다.

function reverse_words($input) { 
    $rev_words = []; 
    $words = split(" ", $input); 
    foreach($words as $word) { 
     $rev_words[] = strrev($word); 
    } 
    return join(" ", $rev_words); 
} 
+0

배열 함수가 문자열 함수보다 빠르기 때문에 참입니다. 그게 그렇게 중요한 건가? 한 번에 수십억 개의 문자열을 뒤집 지 않는 한 그렇지 않습니다. – deceze

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 
+0

'split()'은 POSIX Regex 확장의 일부이며, PHP 5.3.0에서는 PCRE (Perl-Compatible Regex)를 사용하지 않습니다. 하지만 어쨌든 정규 표현식이 필요 없으면'explode()'만하면됩니다. –

+0

아, 잘 안다. 고마워. –

0

내가 할 것 :

1

Functionified을 :

<?php 

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

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

?> 
관련 문제