4

我有一个字符串 as$test = 'aa,bb,cc,dd,ee'和其他字符串 as $match='cc'。我希望结果为$result='aa,bb,dd,ee'. 我无法获得所需的结果,因为不确定哪个 PHP 函数可以提供所需的输出。

另外,如果我有一个字符串 as$test = 'aa,bb,cc,dd,ee'和其他字符串 as $match='cc'。我希望结果为$match=''. 即如果在$test中找到 $ match则可以跳过$match值

任何帮助将不胜感激。

4

4 回答 4

6

您可以尝试:

$test   = 'aa,bb,cc,dd,ee';
$match  = 'cc';

$output = trim(str_replace(',,', ',', str_replace($match, '', $test), ','));

或者:

$testArr = explode(',', $test);
if(($key = array_search($match, $testArr)) !== false) {
  unset($testArr[$key]);
}
$output  = implode(',', $testArr);
于 2013-08-28T06:59:05.647 回答
3

尝试preg_replace

$test = 'aa,bb,cc,dd,ee';

$match ='cc';

echo $new = preg_replace('/'.$match.',|,'.$match.'$/', '', $test);

输出

aa,bb,dd,ee
于 2013-08-28T06:58:11.397 回答
0
 $test = 'aa,bb,cc,dd,ee';
 $match='cc';
echo trim(str_replace(',,', ',' , str_replace($match,'',$test)),',');

演示

于 2013-08-28T07:02:50.643 回答
0

试试这个:

$test = 'aa,bb,cc,dd,ee';
$match = 'cc';

$temp = explode(',', $test);    
unset($temp[ array_search($match, $temp) ] );
$result = implode(',', $temp);

echo $result;
于 2013-08-28T07:12:14.807 回答