【发布时间】:2017-04-19 09:27:55
【问题描述】:
我正在尝试对 XML 中的元素进行“分组”,其中一些元素共享相同的日期,然后从这些元素“组”中打印某些值。
XML 结构:
<parent>
<!-- Day 1 -->
<element date="2017-04-18D12:00:00">
<node value="30" />
<node value="82" /> <!-- This is the highest of the day 1 -->
<node value="25" />
<foo name="noon" />
</element>
<element date="2017-04-18D18:00:00">
<node value="12" />
<node value="52" />
<node value="11" /> <!-- This is the lowest of the day 1 -->
<foo name="evening" />
</element>
<!-- Day 2 -->
<element date="2017-04-19D00:00:00">
<node value="21" />
<node value="78" />
<node value="33" />
<foo name="night" />
</element>
<element date="2017-04-19D06:00:00">
<node value="35" />
<node value="57" />
<node value="88" />
<foo name="morning" />
</element>
<element date="2017-04-19D12:00:00">
<node value="22" />
<node value="92" /> <!-- This is the highest of the day 2 -->
<node value="81" />
<node value="19" />
<foo name="noon" />
</element>
<element date="2017-04-19D18:00:00">
<node value="2" /> <!-- This is the lowest of the day 2 -->
<node value="30" />
<node value="44" />
<foo name="evening" />
</element>
<!-- Day 3 -->
<element date="2017-04-20D00:00:00">
<node value="12" />
<node value="99" />
<node value="43" />
<foo name="night" />
</element>
<element date="2017-04-20D06:00:00">
<node value="65" />
<node value="211" /> <!-- This is the highest of the day 3 -->
<node value="16" />
<foo name="morning" />
</element>
<element date="2017-04-20D12:00:00">
<node value="32" />
<node value="55" />
<node value="77" />
<node value="1" /> <!-- This is the lowest of the day 3 -->
<foo name="noon" />
</element>
<element date="2017-04-20D18:00:00">
<node value="68" />
<node value="74" />
<node value="21" />
<foo name="evening" />
</element>
...
</parent>
每个元素都有一个日期属性,我想用它来对元素进行分组。
应打印最终结果
<div class="group">
<div>Monday</div>
<div>11</div>
<div>82</div>
<div>noon</div>
<div>evening</div>
</div>
<div class="group">
<div>Thursday</div>
<div>2</div>
<div>92</div>
<div>night</div>
<div>morning</div>
<div>noon</div>
<div>evening</div>
</div>
<div class="group">
<div>Wednesday</div>
<div>1</div>
<div>211</div>
<div>night</div>
<div>morning</div>
<div>noon</div>
<div>evening</div>
</div>
...
这是我目前所拥有的:
$source = simplexml_load_file('http://example.com');
foreach ($source -> parent -> element as $element) {
// Format the date value and get the day so the elements could group
$from = explode('D', $element['date']);
$group_day = explode('-', trim($from[0]));
// problem starts here :)
}
XML 中的注释仅用于演示,不包含在其中。
【问题讨论】: