2014-01-29 59 views
0

林输出一些数据作为JSON和我试着用HTML代码来替换括号中的输出“[”:PHP str_replace函数不能在JSON字符串工作

$qq = json_decode($html, true); 
$qq2 = str_replace("[","<span>",$qq); 

print_r($qq2); 

它不工作,这意味着无论如何,括号都显示出来,并没有被替换。 输出示例:

[2] => Array 
           (
            [image] => http://rack.0.mshcdn.com/james-clapper.jpg 
            [query] => (max-width: 480px) 
            [size] => 80x80# 
           ) 

我想换成括号为html标签,以便输出将 是:

[2] => Array 
           (
            <span> image </span> => http://rack.0.mshcdn.com/james-clapper.jpg 
            <span> query </span> => (max-width: 480px) 
            <span> size </span> => 80x80# 
           ) 
+1

看起来好像您正试图替换数组上的文本而不是字符串。 http://us3.php.net/json_decode – RyanS

+0

你在说我想做什么是不可能的吗?基本上我试图通过在HTML标签中转换它来“美化”json。这是不可能的这样的..? – Youss

+2

正如RyanS所说,$ qq是一个数组,而不是JSON字符串。无论哪种方式,你都不应该为此使用str_replace。只需迭代数组并创建一个具有格式的字符串即可。 – Dave

回答

2

使用http://www.php.net/array_walk后,您解码字符串申请str_replace函数来的每一个成员阵列。

+0

谢谢,似乎它可以完成这项工作,但仍在测试.. – Youss

+1

不错,如果您只需要将HTML标记添加到数组键,而不是使用str_replace,则可以在回调函数中追加并预先将它们添加为 。$键。 marcanuy