我正在尝试使用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 as $value);
这样做,foreach循环将运行,但是其中的代码{}
实际上放在foreach循环之外,因此$value
只导致存储数组的最后一个元素.
代码应该如下所示:
$message = "kk,ll"; $myArray = explode(',', $message); print_r ($myArray); foreach ($myArray as $value) { echo "$value
"; $array[] = $value; } print_r ($array);