if 语句仅使用 xml PHP 的最后一个数据集


If statement only uses last data set of xml PHP

My If 语句仅在 XML 数据的最后一个数据集中满足条件时才有效。如果在最后一个条目之前满足条件,则无法识别。

下面是 XML 数据

<PaymentsByMonthYear xmlns="server" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:schemaLocation="http://server.fseconomy.net/static/datafeed_payments.xsd" total="4">
<Payment>
  <Id>51180698</Id>
  <Date>2015/02/02 15:23:27</Date>
  <To>Solo</To>
  <From>Jon</From>
  <Amount>1000.00</Amount>
</Payment>
<Payment>
  <Id>51182828</Id>
  <Date>2015/02/02 16:57:44</Date>
  <To>Solo</To>
  <From>lj440</From>
  <Amount>100.00</Amount>
</Payment>
<Payment>
  <Id>51192472</Id>
  <Date>2015/02/02 21:28:25</Date>
  <To>SoloBanner</To>
  <From>lj440</From>
  <Amount>5000.00</Amount>
  <Reason>Group payment</Reason>
</Payment>
<Payment>
  <Id>51234023</Id>
  <Date>2015/02/04 06:00:55</Date>
  <To>Bob</To>
  <From>SoloBanner</From>
  <Amount>5100.00</Amount>
</PaymentsByMonthYear>

这是我拥有的代码,只要最后一笔付款满足 否则它返回"否"即可工作

<?php
  //Define Username
  $user = "lj440";
  //Connect to Server
  $link1 = "data.xml";
  $xml1 = simplexml_load_file($link1) or die("Error: Cannot create object");
  //Gather Fields
  foreach($xml1->children() as $info1)
   {
   $from = $info1->From;
   $date = $info1->Date;
   $amount = $info1->Amount;
   }
  //Create If Statement
  if (($user == $from) AND (strtotime($date) > strtotime("1 month ago")) AND ($amount >= "5000.00"))
{
 echo "yes";
}
else
{
echo "no";
}
?> 
  foreach($xml1->children() as $info1)
   {
    $from = $info1->From;
    $date = $info1->Date;
    $amount = $info1->Amount;
   }

你在那里看到任何if声明吗?不。该循环只是运行和运行,这些变量获取最后一个元素的值。由于 if 语句在此循环之后出现,因此它只能看到最后一个元素并执行它所做的事情。

溶液?在循环移动if