假设我有一个字符串:
cat,mouse,dog,horse
Run Code Online (Sandbox Code Playgroud)
是否有正则表达式或函数可以如下工作?
1)"cat" return string ->"mouse,dog,horse"
2)"mouse" return string ->"cat,dog,horse"
3)"dog" return string ->"cat,mouse,horse"
4)"horse" return string ->"cat,mouse,dog"
Run Code Online (Sandbox Code Playgroud)
我需要从字符串中删除所选项并返回字符串的其余部分.
Ry-*_*Ry- 17
你的意思是一个删除某个元素的函数?试试这个:
function removeFromString($str, $item) {
$parts = explode(',', $str);
while(($i = array_search($item, $parts)) !== false) {
unset($parts[$i]);
}
return implode(',', $parts);
}
Run Code Online (Sandbox Code Playgroud)
它就像爆炸字符串(str_getcsv)然后删除搜索的术语一样简单.如果你有一个数组,那么array_diff使它非常简单:
return array_diff(str_getcsv($list), array($search));
Run Code Online (Sandbox Code Playgroud)
工作演示。
这会将两个字符串输入都转换为数组,explode()用于列表。然后,您只array_diff()需要输出第二个数组中的内容,而不是第一个数组中的内容。最后,我们将implode()所有内容恢复为CSV格式。
$input = 'cat';
$list = 'cat,mouse,dog,horse';
$array1 = Array($input);
$array2 = explode(',', $list);
$array3 = array_diff($array2, $array1);
$output = implode(',', $array3);
Run Code Online (Sandbox Code Playgroud)