php - 在php中使用数组和关联数组创建数组数组的有效方法
问题描述
我有一个这样的数组:
$word=['total','sales']
和这样的关联数组:
$tot = ['1'=>array('count','total','num of','no of', 'no. of'),
'2'=>array('count')];
1表示之前可以使用
2表示以后可以使用
我必须替换 $word 和 $tot 中存在的单词,并将该单词更改为 $tot 中的所有其他单词。位置由上述规则确定。
我想要这样的数组数组中的所有组合:
[['count', 'sales'],
['sales', 'count'],
['total', 'sales'],
['num of', 'sales'],
['no. of', 'sales'],
['no of', 'sales']]
在 PHP 中有没有有效的方法来做到这一点?
PS:- 如果 $word 变量是这些中的任何一个,则输出应该是相同的:-
['count','sales']
['sales','count']
['no of','sales']
PS2:-基本上如果 $word 是输出数组的任何元素。我想要输出数组中的所有其他元素。
解决方案
这是一个我认为会做你想做的功能。它需要一个单词列表和一个同义词列表。处理第一个和最后一个单词,如果它们存在于同义词列表中,则替换它们(在字符串的开头或结尾,取决于同义词数组的索引)。
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
)
推荐阅读
- git - 在 `git rebase` 期间自动化 `--ours` 和 `--theirs`
- r - 有没有办法在不改变美学的其他属性的情况下改变 ggplot 图例的中断?
- python - 使用 GCC 编译 Cython 生成的 C 文件
- next.js - 使用 nextjs 将当前构建时间嵌入到 human.txt 文件中
- plotly - 使用多个加密货币折线图的下拉菜单
- python - Using a "getter" as a default value of a python function
- javascript - 如何使用 Wolfram 语言中的 JavaScript 在下拉列表中选择一个值?
- twilio - 如何使用 Twilio API 创建转发来电的 Twilio 函数(或任何其他 Twilio 内置服务)?
- javascript - 悬停在样式组件中不起作用,其他样式工作正常
- python - 叶热图意外加权结果