对我收到的:foreach循环值感到困惑

时间:2014-02-12 15:01:39

标签: php

HI创建了一个foreach循环,我得到了一个值,但我无法理解为什么我得到了我得到的值。 任何人都可以解释为什么我得到321作为输出而不是123?

<?php
    $numbers = array(1,2,3,4);
    $total = count($numbers);
    $output = "";
    $i = 0;

    foreach($numbers as $number) {
        $i = $i + 1;
        if ($i < $total) {
            $output = $number . $output;
        }
    }

    echo $output;
?>

4 个答案:

答案 0 :(得分:5)

$output = $number . $output;在输出开始时附加新数字,而不是在结尾处。

$output = $output . $number;应该能满足您的期望。

正如Phil Perry建议的那样,$output .= $number;也会起作用,而且会更短。

答案 1 :(得分:2)

因为你要以错误的顺序附加字符串......

$output = $number . $output;

代替

$output = $output . $number;

答案 2 :(得分:2)

这是因为您将当前数字添加到输出中而不是附加。

$output = $output . $number;

会给你想要的结果。

答案 3 :(得分:1)

我不认为这是解决方案。 但是你的代码不应该是$ total:

$ total = count($ numbers)-1;

现在你有:

$ total = count($ numbers);

数组从0开始计数,count选项从1开始。 因为你的$ i已经是0,它经常输出1次。 (纠正我,如果我错了)