簡體   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