本文实例讲述了php实现xml转换数组的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
<?php $info = '<?xml version= "1.0" encoding= "utf-8" ?> <data> <GeocoderSearchResponse> <status>OK</status> <result> <location> <lat>39.94921</lat> <lng>116.463619</lng> </location> <precise>0</precise> <confidence>50</confidence> <level>脚本</level> </result> </GeocoderSearchResponse> <GeocoderSearchResponse> <status>OK</status> <result> <location> <lat>39</lat> <lng>116</lng> </location> <precise>0</precise> <confidence>50</confidence> <level>脚本123</level> </result> </GeocoderSearchResponse> </data>'; $xml = simplexml_load_string( $info ); function xml2array( $xmlobject ) { if ( $xmlobject ) { foreach (( array ) $xmlobject as $k => $v ) { $data [ $k ] = ! is_string ( $v ) ? xml2array( $v ) : $v ; } return $data ; } } $data = xml2array( $xml ); var_dump( $data ); ?> |
运行结果如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
array (1) { [ "GeocoderSearchResponse" ]=> array (2) { [0]=> array (2) { [ "status" ]=> string(2) "OK" [ "result" ]=> array (4) { [ "location" ]=> array (2) { [ "lat" ]=> string(8) "39.94921" [ "lng" ]=> string(10) "116.463619" } [ "precise" ]=> string(1) "0" [ "confidence" ]=> string(2) "50" [ "level" ]=> string(6) "脚本" } } [1]=> array (2) { [ "status" ]=> string(2) "OK" [ "result" ]=> array (4) { [ "location" ]=> array (2) { [ "lat" ]=> string(2) "39" [ "lng" ]=> string(3) "116" } [ "precise" ]=> string(1) "0" [ "confidence" ]=> string(2) "50" [ "level" ]=> string(9) "脚本123" } } } } |
希望本文所述对大家PHP程序设计有所帮助。