删除Array中的元素

时间:2016-07-28 05:06:36

标签: php arrays

我有一些字符串:

  

这不是什么大不了的事。

我想将其更改为

  

这不是一笔交易

到目前为止,我尝试使用此代码,但返回“undefined offset:$ y”

function checkNegation($word){
$input      = strtolower($word);
$split      = preg_split('/\s+/', $input);
$length     = count($split);

$neg = "NOT_";
for ($x=0; $x<$length; $x++){
    if (preg_match("/\bNOT\b/i",$split[$x])){
        $y=$x+1;
        $split[$x]      = "{$neg}{$split[$y]}";
        unset($split[$y]);
    }
}
  $word = implode(" ",$split);
  return $word;
}
你可以帮帮我吗?谢谢你:')

2 个答案:

答案 0 :(得分:0)

如果您已经使用正则表达式,为什么需要将字符串分解为单词数组?你可以匹配&#34;不是&#34;在其中并用&#34;而不是_&#34;替换它。为什么过于复杂的事情?

您的 program 似乎运行良好。但如果单词&#34;不是&#34;它会引起问题。是字符串中的最后一个单词。因为在这种情况下,$y将超出数组范围。

答案 1 :(得分:0)

为什么不只是preg_replace

$str = "It's not big deal";

echo preg_replace("/\b(not)\s+/i", "$1_", $str); // It's not_big deal