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;
?>
答案 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次。 (纠正我,如果我错了)