【发布时间】:2014-04-20 12:39:45
【问题描述】:
我正在尝试合并
<?php
$names = $xml->xpath("/server/game/players/player[disconnect_time = '']/name");
$connect_times = $xml->xpath("/server/game/players/player[disconnect_time = '']/connect_time");
?>
与
<?php
foreach ($names as $name)
{
echo $name . "<br />";
}
foreach ($connect_times as $connect_time)
{
echo $connect_time . "<br />";
}
?>
这样它们就可以像这样相互链接:
$name1 - $connect_time1
$name2 - $connect_time2
$name3 - $connect_time3
但目前它只是按照以下顺序呼应它:
$name1
$name2
$name3
$connect_time1
$connect_time2
$connect_time3
我不太擅长使用 foreach - 所以我希望在这里得到一些指导。保留 xpath 很重要,因为我只想显示 disconnect_time 为空的玩家,因为这意味着他们仍在游戏中。 (xml会暂时存储最近的玩家)
非常感谢您!
编辑:哦!是否可以在 connect_time 上增加一个小时?它比它应该显示的内容晚了 1 小时。我有这段代码 - 但再一次,不知道如何将它与其他代码结合起来..
$connect_time = date("Y-m-d H:i",strtotime("+1 hour",strtotime($name)));
$first = new DateTime("now");
$second = new DateTime($connect_time);
$diff = $first->diff( $second );
编辑 2:添加 XML 的内容以进一步帮助获得解决方案。感谢您的帮助!
<server>
<game>
<players>
<player>
<name>Player 1</name>
<connect_time>2014-03-15 09:05</connect_time>
<disconnect_time/>
</player>
<player>
<name>Player 2</name>
<connect_time>2014-03-15 09:21</connect_time>
<disconnect_time>2014-03-15 09:58</disconnect_time>
</player>
<player>
<name>Player 3</name>
<connect_time>2014-03-15 09:39</connect_time>
<disconnect_time/>
</player>
<player>
<name>Player 4</name>
<connect_time>2014-03-15 09:50</connect_time>
<disconnect_time>2014-03-15 10:00</disconnect_time>
</player>
</players>
</game>
</server>
【问题讨论】:
-
我想一个简单的解决方案是
for($i=0; $i<count($names); $i++)循环,在其中您使用i作为索引...还是我误解了您的问题?