我正试图在自行车共享系统中获得总次数的自行车。我使用php和simpleXML来过滤the XML data。
我已成功检索每个电台的自行车数量。
foreach ($xml->station as $items) {
print $items->nbBikes;
}
但我希望所有车站都能提供总数的自行车。我试过这个来声明一个变量($ totalBikes),它每次都通过foreach语句添加到自身,但是它不起作用。
foreach ($xml->station as $items) {
print $items->nbBikes;
$numberOfBikes = $items->nbBikes;
$totalBikes= $numberOfBikes += $numberOfBikes;
}
print $totalBikes;
有人可以建议一种获得自行车总数的方法吗?
谢谢!
答案 0 :(得分:1)
你想将$ numberofbikes添加到$ totalbikes,而不是自己:
$totalBikes += $numberOfBikes;
是
的快捷方式$totalBikes = $totalbikes + $numberOfBikes;
请务必确认' $ totalbikes'在你的foreach循环之前,所以它不会在每次迭代时重置。
答案 1 :(得分:0)
您在循环中声明了$ totalBikes,因此每次迭代时它都会重置。此外,您没有正确地将$ numberOfBikes添加到$ totalBikes。试试这个:
$totalBikes = 0;
foreach ($xml->station as $items) {
$numberOfBikes = $items->nbBikes;
$totalBikes += $numberOfBikes;
}
print $totalBikes;
答案 2 :(得分:0)
使用xpath
:
$bikes = $xml->xpath("/stations/station/nbBikes");
$sum = array_sum(array_map("intval", $bikes));
line 1
会将所有<nbBikes>
选为数组,但选择为SimpleXml
个对象
line 2
会先将所有元素转换为Integer
,然后将其添加。
注意:对于单行,sum
中有一个xpath
- 函数,但我无法使其工作。有什么想法吗?
$sum = $xml->xpath("sum(/stations/station/nbBikes)")[0];