我在 Wordpress 的 wp all import 插件上有這個函式來匯入產品,它采用第一個值并重命名為第二個值,一個簡單的映射函式。
我只想插入一個條件來檢查該字串,如果不在該字串上,則新字串將是 $cat=uncategorized>$cat 換句話說,如果不在我的字典中,例如 $cat=cars 那么我想替換未分類>汽車
function cat_change($cat){
$cat = str_replace("XLARGE", "XL", $cat);
$cat = str_replace("xl", "XL", $cat);
$cat = str_replace("extralarge", "XL", $cat);
$cat = str_replace("XXL", "2XL", $cat);
$cat = str_replace("2XLARGE", "2XL", $cat);
$cat = str_replace("2large", "2XL", $cat);
$cat = str_replace("2xlarge", "2XL", $cat);
$cat = str_replace("XXXL", "3XL", $cat);
$cat = str_replace("3XLARGE", "3XL", $cat);
$cat = str_replace("3large", "3XL", $cat);
$cat = str_replace("3xlarge", "3XL", $cat);
return $cat;
}
uj5u.com熱心網友回復:
首先,您可以將陣列傳遞給,str_replace以便所有這些行都可以在一個中完成。
然后,您可以使用該$find陣列并explode()進行搜索,in_array()以檢查字串中$find存在的至少一個單詞$cat
function cat_change($cat){
$find = ['XLARGE', 'xl','extralarge', 'XXL', '2XLARGE', '2large', '2xlarge', 'XXXL', '3XLARGE', '3large', '3xlarge'];
$replace = ['XL','XL','XL', '2XL', '2XL','2XL','2XL','3XL','3XL','3XL','3XL'];
$allwords = explode(' ', $cat);
$found = FALSE;
foreach ($find as $word){
if (in_array($word, $allwords)){
$found = true;
break;
}
}
if (!$found){
return 'something else';
}
$cat = str_replace($find, $replace, $cat);
return $cat;
}
$input = 'The quick XLARGE fox jumped over the 2XLARGE moon';
echo $input . PHP_EOL;
echo cat_change($input);
結果
The quick XLARGE fox jumped over the 2XLARGE moon
The quick XL fox jumped over the 2XL moon
或者使用沒有任何查找值的輸入
$input = 'The quick fox jumped over the moon';
echo $input . PHP_EOL;
echo cat_change($input);
結果是
The quick fox jumped over the moon
something else
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/342791.html
標籤:php WordPress的 插件 进口
上一篇:如何計算陣列GBQ中的重復值?
