从数据库查询出来的xml格式的字符串$return_xml,用下面的解析后得到了二维数组,但有一些是空值的解析出来成了array,怎么能转换为空字符串''呢?
$value_array = json_decode(json_encode(simplexml_load_string($return_xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);首先,有没有解析后就能满足要求,
如果没有的话,怎么再次加工这个$value_array从而把子元素里面的array换成空字符串。
上图吧。
这是xml文件,
当然处理时我已经转换为字符串。
这是转换后显示的二维数组。我想要的是 [jylx]=>'' 也就是直接显示空字符串。请大家别喷,说什么来要代码的,我不是计算机行业的,平时也不做计算机工作,只是爱好。而且我真的是看了一些书,网上搜了很多,没能做到,才来问的。谢谢!
$value_array = json_decode(json_encode(simplexml_load_string($return_xml, 'SimpleXMLElement', LIBXML_NOCDATA)), true);首先,有没有解析后就能满足要求,
如果没有的话,怎么再次加工这个$value_array从而把子元素里面的array换成空字符串。
上图吧。
这是xml文件,
当然处理时我已经转换为字符串。
这是转换后显示的二维数组。我想要的是 [jylx]=>'' 也就是直接显示空字符串。请大家别喷,说什么来要代码的,我不是计算机行业的,平时也不做计算机工作,只是爱好。而且我真的是看了一些书,网上搜了很多,没能做到,才来问的。谢谢!
<root>
<item0>
<a>a</a>
<b/>
</item0>
<item1>
<a>a</a>
<b/>
</item1>
</root>
XML;
$r = json_decode(json_encode(simplexml_load_string($s, 'SimpleXMLElement', LIBXML_NOCDATA)), true);
print_r($r);
array_walk($r, function(&$t) {
foreach($t as $k=>$v) if(is_array($v) && !$v) $t[$k] = '';
});
print_r($r);处理前Array
(
[item0] => Array
(
[a] => a
[b] => Array
(
) ) [item1] => Array
(
[a] => a
[b] => Array
(
) ))处理后Array
(
[item0] => Array
(
[a] => a
[b] =>
) [item1] => Array
(
[a] => a
[b] =>
))