我很好奇,如果有可能讓這段代碼變得更短,可能更快?下面這段代碼的目標是通過更改(並保留)其中的數字來更新字符串,其中使用有序替換(例如{#0},{#1}等)來查找每個數字。更新字符串並保存數組中的舊數據
此外,將發現的數字分別保存在數組中,以便我們隨時可以恢復信息。
下面的代碼工作,但我相信它可能會顯着優化,並希望在一步完成。
$str = "Lnlhkjfs7834hfdhrf87whf4akuhf999re";//could be any string
$nums = array();
$count = 0;
$res = preg_replace_callback('/\d+/', function($match) use(&$count) {
global $nums;
$nums[] = $match[0];
return "{#".($count++)."}";
}, $str);
print_r($str); // "Lnlhkjfs7834hfdhrf87whf4akuhf999re"
print_r($res); // "Lnlhkjfs{#0}hfdhrf{#1}whf{#2}akuhf{#3}re"
print_r($nums); // ([0] => 7834 [1] => 87 [2] => 4 [3] => 999)
這可能嗎?