[英]Foreach loop looping twice
所以我的問題是它循環了兩次,而不是我想要的輸出。因此,我首先有一個3復選框,每個值從1到3,並發送到數據庫並除以'@ | @ ' 標志。
$ rs_array ['package']的3個復選框的內容示例
1@|@2@|@3
這是它的foreach循環
if(strpos($rs_array['package'], '@|@') == true){
$array = explode('@|@', $rs_array['package']);
foreach ($array as $myArray) {
if ($myArray==1) {
$myArray = "Starter";
}
elseif ($myArray==2) {
$myArray = "Developing";
}
elseif ($myArray==3){
$myArray = "Matured";
}
$my_Array[] = $myArray;
}
//unset($my_Array);
$my_Arrays = implode(',', $my_Array);
}
else{
$my_Arrays = $rs_array['package'];
if($my_Arrays==1){
$my_Arrays = "Starter";
}
elseif ($my_Arrays==2) {
$my_Arrays = "Developing";
}
elseif ($my_Arrays==3) {
$my_Arrays = "Matured";
}
else{
$my_Arrays = "";
}
}
echo $my_Arrays;
當我選擇其中三個時,這是回聲的輸出
Starter,Developing,Matured,Starter,Developing,Starter,Developing,Matured
這是我選兩個的時候
Starter,Developing,Matured,Starter,Developing
我仍然是這個foreach領域的菜鳥,所以請記住我仍然找不到解決方法或什至為何如此顯示。
- - - -問題 - - -
現在,我看到的問題是,如果我只有一行$ rs_array ['package'],它可以正常工作,但是問題是,如果有兩個或更多行。 它只是累加了第二個,依此類推...我需要一種方法,使它可以識別出每行都是不同的
您可以直接將它們推入陣列:
if(strpos($rs_array['package'], '@|@') == true){
$array = explode('@|@', $rs_array['package']);
foreach ($array as $myArray) {
if ($myArray==1) {
$my_Array[] = "Starter";
} elseif ($myArray==2) {
$my_Array[] = "Developing";
} elseif ($myArray==3){
$my_Array[] = "Matured";
}
}
//unset($my_Array);
$my_Arrays = implode(',', $my_Array);
}
echo $my_Arrays;
希望能幫助到你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.