【问题标题】:Multiplication with a simplexml_load_file() object doesn't work与 simplexml_load_file() 对象相乘不起作用
【发布时间】:2015-02-12 22:18:33
【问题描述】:

我从XMLPHP 中提取值

<?php 

    $url = 'list.xml';
    $xml = simplexml_load_file($url);

    $entries = $xml->item;
    $i = 0;
    $total = 1;

    foreach($entries as $entry){
        $i++;
        $number[$i] = $entry->total;
        $total *= $number[$i];
    }

    echo $total;

?> 

如何根据从 XML 中提取的每个 $number 来构建总计?现在,我的总数为零。

所以对于所有循环来说,就像这样:

$total = $number[1] * $number[2] * $number[3] * $number[4] ....

【问题讨论】:

  • 在循环前用0初始化$total,在循环中使用*=操作符
  • hm,如果我在每个循环中回显 $total,我只会得到 0:$total *= $number[$i];然后回显 $total;
  • 1. $totoal = 0; 在 foreach 循环之前 2. 在 foreach 循环中:$total *= $number[$i]; 3. 在 foreach 循环之后:echo $total; 如果你使用这个,你会得到 0 吗? (如果是,其中一个数字是 0)
  • 是的,我仍然得到 0。我有不同的数字,但都大于 0,比如:1.534, 12.934, 0.012, 0.1323, 6.124, ...
  • 它必须工作!你能发布所有数字的价值吗?如果他们太多,只发几个

标签: php xml for-loop foreach multiplication


【解决方案1】:

这应该适合你:

(您必须将simplexml_load_file() 的返回值转换为double

$url = "list.xml"; 
$xml = simplexml_load_file($url); 

$entries = $xml->results->rate; 
$count = 0; 
$total = 1; 
$number = array(); 

foreach($entries as $entry){ 
    $count++; 
    $number[$count] = $entry->Bid; 
    $total *= (double)$number[$count]; 
} 

echo "Total: " . $total;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-06-23
    • 1970-01-01
    相关资源
    最近更新 更多