我有兩個看起來像這樣的字串:
$string1 = "aaaa, bbbb, cccc, dddd, eeee, ffff, gggg";
$string2 = "aaaa, ffff";
我通過在 PHP 中使用函式array_intersect提取了這些字串,然后將結果陣列內爆到這兩個字串中。
我希望 $string2 中出現在 $string1 中的元素以粗體顯示,而不洗掉 $string1 中的任何元素。例如,我希望在 HTML 中回顯以下結果:
aaaa,bbbb,cccc,dddd,eeee,ffff,gggg
我已經實施了以下解決方案:
$array1 = explode(',', $string2):
foreach($array1 as $t){
$string1= str_replace($t,'<b>'. $t.'</b>',$string1);
}
echo "$string1";
我的解決方案有效,但我想知道是否有更好/高效/更清潔的方法來使用 PHP 實作這一目標?
uj5u.com熱心網友回復:
explode- 將字串重新放入陣列中,因此可以迭代較長的字串并檢查短字串, within_array是否有任何匹配項:
$string1 = "aaaa, bbbb, cccc, dddd, eeee, ffff, gggg";
$string2 = "aaaa, ffff";
$array1 = explode(", ", $string1);
$array2 = explode(", ", $string2);
$array3 = [];
foreach ( $array1 as $val ) {
if ( in_array($val, $array2) ) {
array_push($array3, "<strong>$val</strong>");
}
else {
array_push($array3, $val);
}
}
$string3 = implode(", ", $array3);
在這里試試:https ://onlinephp.io/c/431ec
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/490677.html
