粗略得写一个吧$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;
}
$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;
}
$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;
}
<?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);
?>
$index = array('商品名字'=>'goodsname','价格'=>'goodsprices','大于'=>'>','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and");
$str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)";echo str_replace(array_keys($index),array_values($index),$str);
?>
$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个函数那总得就可以这样了
应该是这样的$temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and",'大于'=>'>','等于'=>'=','小于'=>'<',''=>''); $str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)";
我需要$str 根据上面的那个$temp 变成这样的 ((goodsstyle = '欧式') and (goodsprice > 100.00)) and (goodsname = '床');
$temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and",'大于'=>'>','等于'=>'=','小于'=>' <',''=>'');
$str = "((商品款式 等于 欧式) and 价格 大于 100.00)) and (商品名字 等于 床)"; echo str_replace(array_keys($temp),array_values($temp),$str);直接这样就可以了啊
你为什么就不会动脑筋呢?只知道语法???
不懂变通?
举一反三的明显例子你都不会用啊?
$str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)";
echo strtr($str,$temp);
你这个不能有他最后的一个,不然就不显示了
比如:$temp = array('商品名字'=>'goodsname','商品价格'=>'goodsprices','等于'=>'=','商品款式'=>'goodsstyle',"与" => "and",'大于'=>'>','小于'=>'<',''=>'');
$str = "((商品款式 等于 欧式) and (价格 大于 100.00)) and (商品名字 等于 床)";
echo strtr($str,$temp);
没结果