为什么我的php foreach循环只返回数组的最后一个值?

时间:2017-03-17 16:07:16

标签: php arrays foreach

我目前正在创建一个自定义wordpress主题,并且已经遇到了foreach循环的问题。我在下面重新创建了一个简单的foreach循环,它代表了我在wordpress网站上遇到的问题。

我希望$ number的返回值为1 2 3 4,但是当我回显$ number时,它只返回数字4.我在Stack Overflow上找到的其他答案指向不对的分号或者变量名被使用了两次。您可以在下面看到这不是这种情况,但值仍然只是数组中的最后一个值。任何人都可以解释一下我应该对这段代码做些什么改变,以便$ number返回1 2 3 4?提前谢谢。

<?php

$my_arrays = [[1, 2],[3, 4]];
foreach($my_arrays as $array) {
  foreach($array as $a) {
    $numbers = $a . " ";
  }

}

echo $numbers;

?>

3 个答案:

答案 0 :(得分:5)

使用。=追加一个字符串。每次使用 = 时,它都会覆盖之前的值,使用。= ,它会将其添加到现有字符串中。

<?php

$my_arrays = [[1, 2],[3, 4]];
foreach($my_arrays as $array) {
  foreach($array as $a) {
    $numbers .= $a . " "; //Use .= to append a string
  }

}

echo $numbers;

?>

答案 1 :(得分:1)

替代解决方案:

将数组元素附加到数组中,然后将它们内部删除,这将阻止在文本末尾打印空白空间。

$my_arrays = [[1, 2],[3, 4]];
$numbers = [];
foreach($my_arrays as $array) {
  foreach($array as $a) {
    $numbers[] = $a;
  }
}
echo implode(' ', $numbers);

答案 2 :(得分:0)

尝试这样做

<?php
$my_arrays = [[1, 2],[3, 4]];
foreach($my_arrays as $array) {
  foreach($array as $a) {
    $numbers .= $a . " ";
  }
}
echo $numbers;
?>