粗略得写一个吧$temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and"); 
$str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)"; 
foreach($temp as $key=>$value)
{
$str=strreplace($str,$key,$value);
}
echo $str;
function strreplace($str,$key,$value)
{
$str=str_replace("大于",">",str_replace($key,$value,$str));
$str=str_replace("等于","=",$str);
$str=str_replace("小于","<",$str);
return $str;
}

解决方案 »

  1.   

    上面可以简写:$temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and"); 
    $str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)"; 
    foreach($temp as $key=>$value)
    {
    $str=strreplace($str,$key,$value);
    }
    echo $str."<br>";
    function strreplace($str,$key,$value)
    {
    $str=str_replace(array("大于","等于","小于"),array(">","=","<"),str_replace($key,$value,$str));
    return $str;
    }
      

  2.   

    楼主是不是保留什么了, 按我的理解这样
    <?php
    $temp = array('商品名字'=>'goodsname','价格'=>'goodsprices','大于'=>'>','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and"); 
    foreach ($temp as $key=>$val){
    $arr1[]=$key;
    $arr2[]=$val;
    }
    $str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)";
    echo str_replace($arr1,$arr2,$str);
    ?>
      

  3.   

    <?php
    $index = array('商品名字'=>'goodsname','价格'=>'goodsprices','大于'=>'>','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and"); 
    $str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)";echo str_replace(array_keys($index),array_values($index),$str);
    ?>
      

  4.   

    $temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and"); 
    $str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)"; echo str_replace(array("大于","等于","小于"),array(">","=","<"),str_replace(array_keys($temp),array_values($temp),$str));呵呵
    LS的提醒我了,还有array_keys和array_values这2个函数那总得就可以这样了
      

  5.   

    呵呵,我说错了。给的数据不准确
    应该是这样的$temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and",'大于'=>'>','等于'=>'=','小于'=>'<',''=>''); $str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)"; 
    我需要$str 根据上面的那个$temp 变成这样的 ((goodsstyle = '欧式') and (goodsprice > 100.00)) and (goodsname = '床');
      

  6.   

    这样不就更简单了吗??
    $temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and",'大于'=>'>','等于'=>'=','小于'=>' <',''=>''); 
    $str = "((商品款式 等于 欧式) and 价格 大于 100.00)) and (商品名字 等于 床)"; echo str_replace(array_keys($temp),array_values($temp),$str);直接这样就可以了啊
    你为什么就不会动脑筋呢?只知道语法???
    不懂变通?
    举一反三的明显例子你都不会用啊?
      

  7.   

    $temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and"); 
    $str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)";
    echo strtr($str,$temp);
      

  8.   

    呵呵,我不会php,现学的,所以有时候有点......不过真的很感谢大家的帮助。问题已经解决了。
      

  9.   


    你这个不能有他最后的一个,不然就不显示了
    比如:$temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and",'大于'=>'>','小于'=>'<',''=>'');
    $str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)";
    echo strtr($str,$temp);
    没结果