繁体   English   中英

Foreach仅显示数组中的最后一项

[英]Foreach only showing last item in array

我正在尝试使用foreach循环迭代数组中的每个项目,但它只捕获最后一项而不是迭代第一项。 我已经删除了代码以仅显示相关部分并添加了一些命令来识别上述问题。

$message == "kk,ll";
$myArray = explode(',', $message);

print_r ($myArray);

foreach ($myArray as $value);
{   
    echo "$value <br>";
    $array[] = $value;
}

print_r ($array);

输出是:

Array ( [0] => kk [1] => ll ) ll 
Array ( [0] => ll )

你可以看到,当我使用print_r() ,数组包含两个项目。 但是foreach循环只foreach最后一项。 将数组元素添加到循环内的新数组中也最终得到一个只包含最后一个元素的数组。 我究竟做错了什么?

您的代码中有两个错误:

  1. 在你的第一行你有两个相同的标志,只应该是一个。

  2. 在你的foreach循环中,你错误地在末尾添加了一个分号:

foreach ($myArray as $value);

这样做,foreach循环将运行,但{}内的代码实际上放在foreach循环之外,从而导致$value仅存储数组的最后一个元素。

代码应该如下所示:

$message = "kk,ll";
$myArray = explode(',', $message);
print_r ($myArray);
foreach ($myArray as $value) {   
    echo "$value <br>";
    $array[] = $value;
}
print_r ($array);

删除; 在Foreach之后喜欢跟随代码

foreach ($myArray as $value)

{   
echo "$value <br>";
$array[] = $value;
}

你的foreach只分配了$ value,但没有输出。 这是由; 在foreach之后,同样如

foreach ($myArray as $value)
{}

在此之后,$ value具有$ myArray的最后一个元素

{   
    echo "$value <br>";
    $array[] = $value;
}

只输出最后一个元素。

 In Laravel Framework Use Code into Controller: $dd = $categories->pluck( 'title' )->toArray(); foreach ( $dd as $key => $value ) {<br /> $array[$key] = '.' . $value;<br /> } <br /> $cat = implode( ',' , $array ); <br /> // Result Display : James,Mark,Helmet..... 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM