PHP xml转换成数组

longyi 发布于 2016/09/27 21:35
阅读 1K+
收藏 0
PHP
XML中的内容为:
<?xml version="1.0" encoding="utf-8"?>
<xml>
<list>1</list>
<list>2</list>
<list>3</list>
</xml>
PHP代码:
<?php
$s=join("",file('test.xml'));                         
$result = xml_to_array($s);                              
                                                         
function xml_to_array($xml)                              
{                                                        
  $array = (array)(simplexml_load_string($xml));         
  foreach ($array as $key=>$item){                       
    $array[$key]  =  struct_to_array((array)$item);      
  }                                                      
  return $array;                                         
}                                                        
function struct_to_array($item) {                        
  if(!is_string($item)) {                                
    $item = (array)$item;                                
    foreach ($item as $key=>$val){                       
      $item[$key]  =  struct_to_array($val);             
    }                                                    
  }                                                      
  return $item;                                          
}                                                        
print_r($result);
?>
打印出的内容为:Array ( [list] => Array ( [0] => 1 [1] => 2 [2] => 3 ) ) 

如何才能打印出:Array ( [0] => 1 [1] => 2 [2] => 3 ),这种形式的,
我是想要这样的一个数组:array('1','2','3')

谢谢!
加载中
1
陨落人间
陨落人间
function xml_to_array($xml)                              
{                                                        
  $array = (array)(simplexml_load_string($xml));
  $temp =array();
  foreach($array['list'] as $key => $value) 
  {
  	$temp[$key] =$value;
  }
   return $temp;                                     
} 


print_r($result);

针对你这个XML格式,下面那个函数不需要了

longyi
longyi
感谢您的回复,问题解决了。ps:百度知道一直没人回复,每天都会看看开源中国,所以在此提问,问题得到完美的解决,赞!
1
eechen
eechen
<?php
header('Content-Type: text/plain; charset=utf-8');

$xml = <<<'nowdoc'
<?xml version="1.0" encoding="utf-8"?>
<xml>
<list>1</list>
<list>2</list>
<list>3</list>
</xml>
nowdoc;

//XML转数组
$obj = simplexml_load_string($xml);
$arr = json_decode(json_encode($obj) , true);
$tmp = $arr['list']; //输出
array (
  0 => '1',
  1 => '2',
  2 => '3',
)
longyi
longyi
感谢您的回复,我使用了第一个回复,问题解决了!
返回顶部
顶部