怎么删除php数组里面特定字符前面内容?

比如数组第三个元素
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"]);

温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网