2016-11-17 35 views
0

一些僞代碼,我想如果可能的話要做到這一點用foreach條件基於迭代的位置

我不知道是否可以從陣列獲取的位置

$num = array (1 => 7, 
       2 => 9, 
       3 => 10, 
       4 => 11,); 

foreach ($num as $value) { 

if (first position) { echo $value . '<br> first <br>';} 

elseif (middle position) { echo $value . '<br> middle <br>';} 

elseif (last position) { echo $value . '<br> last';} 


} 

預期結果

7 
first 
9 
middle 
10 
middle 
11 
last 
+0

你可以得到'$ key => $ value'這個鍵,然後你就可以用整個數組來計算出你的位置。 http://php.net/manual/en/control-structures.foreach.php'第二種形式將額外地分配當前元素的關鍵到$ key變量在每次迭代.' – chris85

回答

1
$num = array (1 => 7, 
       2 => 9, 
       3 => 10, 
       4 => 11); 
$i = 1; 
foreach ($num as $value) { 
    if($i == 1){// if first 
     echo $value.'<br> first<br>'; 
    }else if(count($num) == $i){// if last 
     echo $value.'<br> last'; 
    }else{// if between first and last 
     echo $value.'<br> middle<br>'; 
    } 
    $i++; 
} 

//---output 
/* 
7 
first 
9 
middle 
10 
middle 
11 
last 
*/ 
+0

夥計,檢查我的答案 – Ricardo

0

解決我自己,比ks @ chris85

$num = array (1 => 7, 
      2 => 9, 
      3 => 10, 
      4 => 11,); 

$arrlen = count($num); 

foreach ($num as $key=>$value) { 

if ($key == 1) { echo $value . '<br> first <br>';} 

elseif ($key != $arrlen) { echo $value . '<br> middle <br>';} 

else { echo $value . '<br> last';} 


}