-3

我正在尝试替换查询字符串中的某些单词,此代码仅在我使用 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,这就是我得到错误的地方

4

3 回答 3

2

创建搜索和替换单词/字符数组并将其传递给str_replace.

$search = array('','and','not','or');
$replace= array('+','&','-','|');
$query = str_replace($search,$replace,$query);
于 2013-07-22T15:30:13.880 回答
0

您可以在以下位置使用数组而不是字符串str_replace

$query = str_replace(array(' ', 'and', 'not', 'or'), array('+', '&', '-', '|'), $query);

您也可以先将数组保存在变量中,然后将它们传递给str_replace

更多详情str_replacehttp ://www.php.net/manual/en/function.str-replace.php

于 2013-07-22T15:33:16.633 回答
0

是的,您可以使用它str_replace来执行此操作:

$a1= array("", "and", "not", "or");
$a2= array("+", "&", "-", "|");


$result= str_replace($a1, $a2, $query);
于 2013-07-22T15:31:22.300 回答