比如数组第三个元素
a[3] 内字符串为 <p>百度一下你就知道<br /></p> <h2>方法:</h2> <p> ....... <br /> ........
我现在要删掉 “方法” 前面的东西,我知道可以把前面东西替换成空,但是数据很多,格式都是这样的内容不一样,都是要删掉“方法”前的内容!
这个一般就是使用正则表达式了,封装一个函数:
$str = "<p>百度一下你就知道<br /></p> <h2>方法:</h2> <p> ....... <br /> ........";$str2 = "<p>希望对你有帮助方法:</h2> <p> ....... <br /> ........";
function my_replace($str){
$result = preg_replace("/(.*)(方法:.*)/", "\\2", $str);
return $result;
}
echo my_replace($str);
echo my_replace($str2);
方法:</h2> <p> ....... <br /> ........方法:</h2> <p> ....... <br /> ........
如有疑问请追问。
追问你写的我测试了没问题,但是我套用到我的代码愣是没效果,我的数组是二维的调用别人借口返回的json格式的数据,
$json=json_decode($html,true);
我就直接 echo my_replace($json["aa"]["bb"]),好像不行,我最终还要把处理过的数据重新赋值到这个位置,哪里不对啊?
依然不是太清楚你的状况,猜测问题应该是访问$json处理不正确,请参考下面的代码,如有疑问,请追问:
function object_array($array) {if(is_object($array)) {
$array = (array)$array;
} if(is_array($array)) {
foreach($array as $key=>$value) {
$array[$key] = object_array($value);
}
}
return $array;
}
$array = array("1"=>"A","2"=>"B","3"=>array("3-1"=>"C"));
$json = json_encode($array);
echo $json;
$array2 = json_decode($json);
echo "<pre>";
print_r($array2);
echo "</pre>";
//print_r($array2["3"]["3-1"]);//访问报错, Cannot use object of type stdClass as array
$array2 = object_array($array2);//object转换成数组后,可以正常处理。
print_r($array2["3"]["3-1"]);
温馨提示:答案为网友推荐,仅供参考