XML 到数组 - 基于一个子元素对数组结果进行分组


XML to array - Group Array results based on one child element

我有一个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。

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 然后将它们拉回来,但这只是一个糟糕的补丁。

希望有人能帮忙。

问候

这是一个

粗略的概念,我会怎么做。

您必须使用 simpleXML 将 XML 解析为数组,然后您可以自定义 HTML 输出。

$result = array();
foreach($xml->element as $element){
   $line = array();
   $line['date'] = $element->date;
   $line['description'] = $element->description;
   $result[$element->title]['line'][] = $line;
}