文字と数字を含む UTF8 文字列があります。例えば:
"Hello World 37. What? 24 last 6650"
数字だけを逆にしたいのですが、数字は同じ場所に保ちます。出力は次のようになります。
"Hello World 73. What? 42 last 0566"
echo preg_replace_callback('/\d+/', function (array $m) { return strrev($m[0]); }, $string);
質問を投稿する前に、私はそれについて考え、自分に合ったアイデアを得たので、データベースを充実させるためにこの質問を投稿しているだけです.
function reverseNumbersInString($str){
$tokens = explode(" ", $str);
$res = "";
for ($i = 0; $i < sizeof($tokens); $i++){
if (intval($tokens[$i] > 0 )){
$tokens[$i] = strrev($tokens[$i]);
}
$res .= " " . $tokens[$i];
}
return $res;
}