我具有以下XML其中我轉換爲陣列XML來陣列轉換
<?xml version="1.0" encoding="utf-8"?>
<root>
<student-No>S0001</student-No>
<Title>Mr</Title>
<firstName>John</firstName>
<lastName>Doe1</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-000</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0002</student-No>
<Title>Mr</Title>
<firstName>Sheen</firstName>
<lastName>D</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-001</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0003</student-No>
<Title>Mr</Title>
<firstName>Mark</firstName>
<lastName>Webber</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-002</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0004</student-No>
<Title>Mr</Title>
<firstName>Eric</firstName>
<lastName>smith</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-003</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0005</student-No>
<Title>Mr</Title>
<firstName>Larry</firstName>
<lastName>Page</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-004</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0006</student-No>
<Title>Mr</Title>
<firstName>Mark</firstName>
<lastName>z</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-005</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0007</student-No>
<Title>Mr</Title>
<firstName>william</firstName>
<lastName>s</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-006</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0008</student-No>
<Title>Mr</Title>
<firstName>bill</firstName>
<lastName>G</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-007</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0009</student-No>
<Title>Mr</Title>
<firstName>ricky</firstName>
<lastName>p</lastName>
<gender>male</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-008</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
<student-No>S0010</student-No>
<Title>Mrs</Title>
<firstName>emma</firstName>
<lastName>Webber</lastName>
<gender>female</gender>
<address>australia</address>
<mobileNumber>987654321</mobileNumber>
<homeNumber>000-000-009</homeNumber>
<email>[email protected]</email>
<institute>act</institute>
<grade>begineer</grade>
</root>
我使用以下代碼來生成XML
$xmlObject = new SimpleXMLElement($xml);
print_r(@json_decode(@json_encode($xmlObject),1));
它產生以下輸出作爲陣列
Array ([student-No] => Array ([0] => S0001 [1] => S0002 [2] => S0003 [3] => S0004 [4] => S0005 [5] => S0006 [6] => S0007 [7] => S0008 [8] => S0009 [9] => S0010) [Title] => Array ([0] => Mr [1] => Mr [2] => Mr [3] => Mr [4] => Mr [5] => Mr [6] => Mr [7] => Mr [8] => Mr [9] => Mrs) [firstName] => Array ([0] => John [1] => Sheen [2] => Mark [3] => Eric [4] => Larry [5] => Mark [6] => william [7] => bill [8] => ricky [9] => emma) [lastName] => Array ([0] => Doe1 [1] => D [2] => Webber [3] => smith [4] => Page [5] => z [6] => s [7] => G [8] => p [9] => Webber) [gender] => Array ([0] => male [1] => male [2] => male [3] => male [4] => male [5] => male [6] => male [7] => male [8] => male [9] => female) [address] => Array ([0] => australia [1] => australia [2] => australia [3] => australia [4] => australia [5] => australia [6] => australia [7] => australia [8] => australia [9] => australia) [mobileNumber] => Array ([0] => 987654321 [1] => 987654321 [2] => 987654321 [3] => 987654321 [4] => 987654321 [5] => 987654321 [6] => 987654321 [7] => 987654321 [8] => 987654321 [9] => 987654321) [homeNumber] => Array ([0] => 000-000-000 [1] => 000-000-001 [2] => 000-000-002 [3] => 000-000-003 [4] => 000-000-004 [5] => 000-000-005 [6] => 000-000-006 [7] => 000-000-007 [8] => 000-000-008 [9] => 000-000-009) [email] => Array ([0] => [email protected] [1] => [email protected] [2] => [email protected] [3] => [email protected] [4] => [email protected] [5] => [email protected] [6] => [email protected] [7] => [email protected] [8] => [email protected] [9] => [email protected]) [institute] => Array ([0] => act [1] => act [2] => act [3] => act [4] => act [5] => act [6] => act [7] => act [8] => act [9] => act) [grade] => Array ([0] => begineer [1] => begineer [2] => begineer [3] => begineer [4] => begineer [5] => begineer [6] => begineer [7] => begineer [8] => begineer [9] => begineer))
這裏它創建了所有student-no元素作爲一個數組,所有Title元素作爲一個數組 在生成的二維數組中。 取而代之的是,我想這樣的輸出,其中每行是如何能做到這一點,例如
Array ([0] => Array ([student-No] => S0001 [Title] => Mr [firstName] => John [lastName] => Doe1 [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-000 [email] => [email protected] [institute] => act [grade] => begineer) [1] => Array ([student-No] => S0002 [Title] => Mr [firstName] => Sheen [lastName] => D [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-001 [email] => [email protected] [institute] => act [grade] => begineer) [2] => Array ([student-No] => S0003 [Title] => Mr [firstName] => Mark [lastName] => Webber [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-002 [email] => [email protected] [institute] => act [grade] => begineer) [3] => Array ([student-No] => S0004 [Title] => Mr [firstName] => Eric [lastName] => smith [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-003 [email] => [email protected] [institute] => act [grade] => begineer) [4] => Array ([student-No] => S0005 [Title] => Mr [firstName] => Larry [lastName] => Page [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-004 [email] => [email protected] [institute] => act [grade] => begineer) [5] => Array ([student-No] => S0006 [Title] => Mr [firstName] => Mark [lastName] => z [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-005 [email] => [email protected] [institute] => act [grade] => begineer) [6] => Array ([student-No] => S0007 [Title] => Mr [firstName] => william [lastName] => s [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-006 [email] => [email protected] [institute] => act [grade] => begineer) [7] => Array ([student-No] => S0008 [Title] => Mr [firstName] => bill [lastName] => G [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-007 [email] => [email protected] [institute] => act [grade] => begineer) [8] => Array ([student-No] => S0009 [Title] => Mr [firstName] => ricky [lastName] => p [gender] => male [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-008 [email] => [email protected] [institute] => act [grade] => begineer) [9] => Array ([student-No] => S0010 [Title] => Mrs [firstName] => emma [lastName] => Webber [gender] => female [address] => australia [mobileNumber] => 987654321 [homeNumber] => 000-000-009 [email] => [email protected] [institute] => act [grade] => begineer))
每個數組 的元素?
沒有像將XML轉換爲JSON然後轉換爲數組那樣簡單化的事情將在這裏完成這項工作。我建議查看DOMDocument API。一些你可以使用的方法的僞代碼是'$ students = array(); $ student = array(); foreach(根元素){if(元素名稱==「student-No」){$ student = array(); $ students [] = $ student; } $ student [元素名稱] =元素值; }' – JLRishe
@JLRishe幾乎我所要提出的建議,並且值得回答而不是評論,儘管在這種情況下SimpleXML和DOM一樣合適。算法中也存在一些錯誤,例如你在那裏寫的。你在提交舊文件之前創建一個空白的'$學生'*。 – IMSoP