1 回答

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
這是一個(gè)我認(rèn)為可以做你想做的功能。它需要一個(gè)單詞列表和一個(gè)同義詞列表。處理第一個(gè)和最后一個(gè)單詞,如果它們存在于同義詞列表中,則替換它們(在字符串的開頭或結(jié)尾,取決于同義詞數(shù)組的索引)。
function swap_words($words, $synonyms) {
$all_synonyms = array_unique(array_merge(...$synonyms));
$result = [];
$word = $words[0];
if (in_array($word, $all_synonyms)) {
foreach ($synonyms[1] as $replacement) {
$result[] = "$replacement " . implode(' ', array_slice($words, 1));
}
foreach ($synonyms[2] as $replacement) {
$result[] = implode(' ', array_slice($words, 1)) . " $replacement";
}
}
$c = count($words) - 1;
$word = $words[$c];
if (in_array($word, $all_synonyms)) {
foreach ($synonyms[1] as $replacement) {
$result[] = "$replacement " . implode(' ', array_slice($words, 0, $c));
}
foreach ($synonyms[2] as $replacement) {
$result[] = implode(' ', array_slice($words, 0, $c)) . " $replacement";
}
}
return $result;
}
用法:
$words = ['no of', 'autumn', 'sales'];
$tot = ['1'=>array('count','total','num of','no of', 'no. of'),
'2'=>array('count')];
print_r(swap_words($words, $tot));
$words = ['autumn', 'sales', 'count'];
print_r(swap_words($words, $tot));
在這兩種情況下,輸出都是
Array (
[0] => count autumn sales
[1] => total autumn sales
[2] => num of autumn sales
[3] => no of autumn sales
[4] => no. of autumn sales
[5] => autumn sales count
)
- 1 回答
- 0 關(guān)注
- 157 瀏覽
添加回答
舉報(bào)