3v4l.org

run code in 300+ PHP versions simultaneously
<?php 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));

preferences:
15.2 ms | 409 KiB | 5 Q