是否有可能使用多维数组来使用 str_replace() 和 array() 函数替换字符串中的单词?
Is there a possible way to use multidimensional arrays to replace words in a string using str_replace() and the array() function?
注:我见过this question here,但我的数组完全不同
大家好。我一直在尝试为我的网站制作审查程序。我最终得到的是:
$wordsList = [
array("frog","sock"),
array("Nock","crock"),
];
$message = str_replace($wordsList[0], $wordsList[1], "frog frog Nock Nock");
echo $message;
我想做的是使用多维数组将“frog”替换为“sock”,而无需在 str_replace();
中输入所有单词
预期输出:“sock sock crocs crocs”
然而,当我执行它时,出于某种未知原因,它实际上并没有完全替换单词,没有任何错误。我认为这是我犯的一个菜鸟错误,但我已经搜索过但没有找到任何关于使用这样的系统的文档。请帮忙!
您需要更改 wordsList 数组的结构。
有两种结构可以使它变得简单:
作为key/value对
这是我的建议,因为它非常清楚字符串及其替换是什么。
// Store them as key/value pairs with the search and replacement strings
$wordsList = [
'frog' => 'sock',
'Nock' => 'crock',
];
$message = str_replace(
array_keys($wordsList), // Get all keys as the search array
$wordsList, // The replacements
"frog frog Nock Nock"
);
作为多维数组
这需要您以相同的顺序添加 search/replacement 值,当您有几个不同的字符串时,这可能很难阅读。
$wordsList = [
['frog', 'Nock'], // All search strings
['sock', 'crock'], // All replacements
];
$message = str_replace(
$wordsList[0], // All search strings
$wordsList[1], // The replacements strings
"frog frog Nock Nock"
);
如果您无法更改原始数组,则创建一个具有正确结构的新数组,因为那样不会“按原样”工作。
注:我见过this question here,但我的数组完全不同
大家好。我一直在尝试为我的网站制作审查程序。我最终得到的是:
$wordsList = [
array("frog","sock"),
array("Nock","crock"),
];
$message = str_replace($wordsList[0], $wordsList[1], "frog frog Nock Nock");
echo $message;
我想做的是使用多维数组将“frog”替换为“sock”,而无需在 str_replace();
中输入所有单词预期输出:“sock sock crocs crocs”
然而,当我执行它时,出于某种未知原因,它实际上并没有完全替换单词,没有任何错误。我认为这是我犯的一个菜鸟错误,但我已经搜索过但没有找到任何关于使用这样的系统的文档。请帮忙!
您需要更改 wordsList 数组的结构。
有两种结构可以使它变得简单:
作为key/value对
这是我的建议,因为它非常清楚字符串及其替换是什么。
// Store them as key/value pairs with the search and replacement strings
$wordsList = [
'frog' => 'sock',
'Nock' => 'crock',
];
$message = str_replace(
array_keys($wordsList), // Get all keys as the search array
$wordsList, // The replacements
"frog frog Nock Nock"
);
作为多维数组
这需要您以相同的顺序添加 search/replacement 值,当您有几个不同的字符串时,这可能很难阅读。
$wordsList = [
['frog', 'Nock'], // All search strings
['sock', 'crock'], // All replacements
];
$message = str_replace(
$wordsList[0], // All search strings
$wordsList[1], // The replacements strings
"frog frog Nock Nock"
);
如果您无法更改原始数组,则创建一个具有正确结构的新数组,因为那样不会“按原样”工作。