我正在尝试替换查询字符串中的某些单词,这段代码只有在我使用1行时才会起作用但是当我尝试使用2行或更多时它会导致我的foreach循环出现问题,我可以将所有替换操作合并在1行
$query = str_replace('','+',$query); // Replaces white space with +
$query = str_replace('and','&',$query); // Replaces and with &
$query = str_replace('not','-',$query); // Replaces not with -
$query = str_replace('or','|',$query); // Replaces or with |
这是我的foreach循环
foreach($jsonObj->d->results as $value)
{ $i = 0;
$bingArray[str_replace ($find, '', ($value->{'Url'}))] = array(
'title'=> $value->{'Title'},
'score' => $score--
);
我在foreach循环中有一个str_replace,那就是我收到错误的地方
答案 0 :(得分:2)
创建搜索和替换单词/字符的数组,并将其传递给str_replace
。
$search = array('','and','not','or');
$replace= array('+','&','-','|');
$query = str_replace($search,$replace,$query);
答案 1 :(得分:0)
是的,您可以使用str_replace
执行此操作:
$a1= array("", "and", "not", "or");
$a2= array("+", "&", "-", "|");
$result= str_replace($a1, $a2, $query);
答案 2 :(得分:0)
您可以在str_replace
中使用数组而不是字符串:
$query = str_replace(array(' ', 'and', 'not', 'or'), array('+', '&', '-', '|'), $query);
您还可以先将数组保存在变量中,然后将它们传递给str_replace
有关str_replace
的详细信息:http://www.php.net/manual/en/function.str-replace.php