我試圖解析如下一個XML文件來創建一個多維數組。如何使用SimpleXML解析XML文件並創建多維數組在PHP
<workbook xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" >
<Worksheet ss:Name="45">
<Table>
<Row><Cell><Data>232</Data></Cell></Row>
<Row><Cell><Data>Apple</Data></Cell></Row>
</Table>
</Worksheet>
<Worksheet ss:Name="46 - new">
<Table>
<Row><Cell><Data>876</Data></Cell></Row>
<Row><Cell><Data>samsung</Data></Cell></Row>
</Table>
</Worksheet>
下面是代碼迄今。
$xml=simplexml_load_file($xmlfile);
$result= array();
foreach($xml->Worksheet as $worksheet) {
$result['tab']['name'][]=$worksheet->attributes('ss', TRUE)->Name;
foreach($worksheet as $table){
foreach($table as $row){
foreach($row as $cell){
$result['tab']['units'][]=$cell->Data;
}
}
}
}
print_r($result);
我試圖讓數組如下:
items =[
tab=>[
'name' => '45',
'units'=>[
['0'=>'232'],
['1'=>'Apple']
]
]
tab=>[
'name' => '46-new',
'units'=>[
['0'=>'876'],
['1'=>'samsung']
]
]
];
但我得到如下結果。
array(
[tab]=>array(
[name]=>array
(
[0]=>SimpleXmlElement Object
(
[0]=> 45
)
[1]=>SimpleXmlElement object
(
[1]=>46-new
)
)
[units]=>array
(
[0]=>SimpleXmlElement Object
(
[0]=> Nr
)
[1]=>SimpleXmlElement object
(
[0]=>model
)
[2]=>SimpleXmlElement Object
(
[0]=> 232
)
[3]=>SimpleXmlElement object
(
[0]=>apple
)
.........
)
)
)
這非常具有挑戰性。如何修改代碼以實現目標?
你想這些變化給achieeve什麼辦法呢?......至少我是越來越有我的代碼的東西。你能解釋一下嗎?plz – nohan
變化後我只得到最後一個單位? – nohan
對不起@nohan,我忘了把$ i放在內在的foreach中。有必要將元素轉換爲字符串,我不確定現在放入的字符串是否是最正確的方法,但請嘗試告訴我。 – Zini