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

时间:2017-01-20 22:37:16

标签: php arrays foreach

我尝试使用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循环仅循环遍历最后一项。将数组元素添加到循环内的新数组中也最终得到一个只包含最后一个元素的数组。我做错了什么?

4 个答案:

答案 0 :(得分:5)

您的代码中有两个错误:

  1. 在你的第一行,你有两个等号,只能是一个。

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

  3. 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);
    

答案 1 :(得分:1)

删除Foreach之后的;,如下面的代码

foreach ($myArray as $value)

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

答案 2 :(得分:1)

你的foreach刚刚分配了$ value,但没有输出。这是由;在foreach之后,与

相同
foreach ($myArray as $value)
{}

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

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

仅输出最后一个元素。

答案 3 :(得分:0)

&#13;
&#13;
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.....
&#13;
&#13;
&#13;