我正在尝试使用foreach循环迭代数组中的每个项目,但它只捕获最后一项而不是迭代第一项.我已经删除了代码以仅显示相关部分并添加了一些命令来识别上述问题.
$message == "kk,ll";
$myArray = explode(',', $message);
print_r ($myArray);
foreach ($myArray as $value);
{
echo "$value
";
$array[] = $value;
}
print_r ($array);
输出是:
Array ( [0] => kk [1] => ll ) ll
Array ( [0] => ll )
你可以看到,当我使用print_r()时,数组包含两个项目.但是foreach循环只遍历最后一项.将数组元素添加到循环内的新数组中也最终得到一个只包含最后一个元素的数组.我究竟做错了什么?
解决方法:
您的代码中有两个错误:
>在你的第一行,你有两个相同的标志,只应该是一个.
>在你的foreach循环中,你错误地在末尾添加了一个分号:
foreach($myArray为$value);
这样做,foreach循环将运行,但{}内的代码实际上放在foreach循环之外,从而导致$value仅存储数组的最后一个元素.
代码应该如下所示:
$message = "kk,ll";
$myArray = explode(',', $message);
print_r ($myArray);
foreach ($myArray as $value) {
echo "$value
";
$array[] = $value;
}
print_r ($array);
标签:php,arrays,foreach
来源: https://codeday.me/bug/20190727/1552953.html