2012-05-01 45 views
0

我有一個XML,我轉換成數組沒有問題,原始的XML看起來像這樣。XML到數組 - 基於一個子元素的組數組結果

<somedata>data</somedata> 
<somedata2>data2</somedata2> 
<level1> 
    <listings> 
    <element> 
     <title>AAA</title> 
     <description>DescriptionA</description> 
     <moredata> 
      <adate>2012/12/12</adate> 
     </moredata> 
    </element> 

    <element> 
     <title>AAA</title> 
     <description>DescriptionA</description> 
     <moredata> 
      <adate>2013/10/12</adate> 
     </moredata> 
    </element> 

    <element> 
     <title>BBB</title> 
     <description>DescriptionB</description> 
     <moredata> 
      <adate>2012/09/01</adate> 
     </moredata> 
    </element> 
    </listings> 
<level1> 

當然到目前爲止,一切都看起來不錯,我讓我的漂亮陣列的所有子對象,但我需要進行分組,例如,用標題元素,考慮到我的輸出看起來創建HTML輸出像這樣的東西。

Title: AAA 
Description: DescriptionA 
Date 1: 2012/12/12 
Date 2: 2013/10/12 

Title: BBB 
Description: DescriptionB 
Date 1: 2012/09/01 

注意:我已經對AAA進行了分組,重複並在同一結果中列出了兩個日期。

如何在PHP中,我正在認真考慮保存到MySQL然後將其拉回,但這只是一個不好的補丁。

希望任何人都可以提供幫助。

Regards

+0

您是否能夠重構源XML文檔?這將更符合邏輯並節省字節。 – Scuzzy

回答

2

這是一個粗略的概念,我該怎麼做。

您必須將simplexml解析爲一個數組,然後您可以自定義您的html輸出。

$result = array(); 

foreach($xml->element as $element){ 

    $line = array(); 
    $line['date'] = $element->date; 
    $line['description'] = $element->description; 

    $result[$element->title]['line'][] = $line; 

} 
+0

我有點理解你的代碼,也許我不能實現它,需要更精確的深度和上面的例子,排序因子是在這種情況下的名稱。 4至5級。謝謝!!!!! –

+0

我已經有了一個XML數組,我被困在一個獨特列表上的每個列表上,裏面的組合列表中的日期是上面例子的過程。 –

+0

您是否想要遍歷$ xml-> somedata-> level1。更具體的 –

相關問題