第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何在數(shù)組源的縮寫(xiě)后有效地添加字符串?

如何在數(shù)組源的縮寫(xiě)后有效地添加字符串?

PHP
阿波羅的戰(zhàn)車(chē) 2022-07-16 18:00:02
我想將美國(guó)州名添加到包含美國(guó)州縮寫(xiě)的字符串中。例如,我想轉(zhuǎn)換一個(gè)字符串?dāng)?shù)組,如:Lorem ipsum CA dolor NY sit foo bar至:Lorem ipsum CA (California) dolor NY (New York) sit any foo bar假設(shè)我的替換數(shù)組如下所示:$states = array(    "AR" => "Arkansas",    "CA" => "California",    "NY" => "New York");一種方法是進(jìn)行 array_key 搜索:$input = "Lorem ipsum CA dolor NY sit any foo bar";$words = explode(' ', $input);foreach ($words as $key => $word) {    if (array_key_exists($word, $states)) {        $words[$k] = $word . " (" . $states[$word] . ")";    }}$output = implode(" ", $words);// Output: Lorem ipsum CA (California) dolor NY (New York) sit any foo bar有沒(méi)有更有效的方法使用原生 PHP 函數(shù)或正則表達(dá)式?解決方案不應(yīng)匹配部分匹配項(xiàng)(例如anyshould not matchNY和barshould not match AR)。
查看完整描述

3 回答

?
月關(guān)寶盒

TA貢獻(xiàn)1772條經(jīng)驗(yàn) 獲得超5個(gè)贊

使用preg_replace_callback函數(shù),您可以在沒(méi)有任何循環(huán)的情況下一步完成:


$repl = preg_replace_callback('/\b(' . implode("|", array_keys($states)) . ')\b/',

     function ($m) use($states) { return $m[1] . ' (' . $states[$m[1]] . ')'; }, $input);


//=> Lorem ipsum CA (California) dolor NY (New York) sit any foo bar

代碼說(shuō)明:

  • '/\b(' . implode("|", array_keys($states)) . ')\b/':這里我們正在使用從 array 獲取的數(shù)組鍵構(gòu)建一個(gè)正則表達(dá)式$states。會(huì)變成:/\b(AR|CA|NY)\b/這里。請(qǐng)注意,此正則表達(dá)式中的第 1 組中正在捕獲狀態(tài)縮寫(xiě)。

  • $m[1] . ' (' . $states[$m[1]] . ')'在州縮寫(xiě)前面附加州名


查看完整回答
反對(duì) 回復(fù) 2022-07-16
?
慕的地10843

TA貢獻(xiàn)1785條經(jīng)驗(yàn) 獲得超8個(gè)贊

對(duì)數(shù)組格式稍作改動(dòng),就可以使用strtr()數(shù)組...


$states = array(

    "AR" => "AR (Arkansas)",

    "CA" => "CA (California)",

    "NY" => "NY (New York)"

);


$text = "Lorem ipsum CA dolor NY sit foo bar";


echo strtr( $text, $states);

給...


Lorem ipsum CA (California) dolor NT (New York) sit foo bar


查看完整回答
反對(duì) 回復(fù) 2022-07-16
?
有只小跳蛙

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊

您不必拆分單詞,只需遍歷狀態(tài)并將短狀態(tài)替換為新文本。


這應(yīng)該做的工作:


$states = array(

    "AR" => "Arkansas",

    "CA" => "California",

    "NY" => "New York"

);


$input = "Lorem ipsum CA dolor NY sit any foo bar";

foreach($states as $shortState=>$longState){

   $input = str_replace($shortState, $shortState." (".$longState.")", $input); 

}

echo $input;

// output: Lorem ipsum CA (California) dolor NY (New York) sit any foo bar


查看完整回答
反對(duì) 回復(fù) 2022-07-16
  • 3 回答
  • 0 關(guān)注
  • 107 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)