2010-02-15 124 views
1

好吧我有一個foreach循環,想知道我是否可以得到當前迭代的最後一個迭代數據值?PHP得到最後一次迭代foreach循環值

代碼:

foreach($array as $key=>$data) { 
    echo "Key: ".$key." Data: ".$data."<br />"; 
} 

結果:

Key: 0 Data: 23244 
Key: 0 Data: Program ID: 39-1-1499-1 

結果我想:

Key: 23244 Data: Program ID: 39-1-1499-1 

有沒有辦法讓當前迭代的關鍵是來自上一次的數據?

回答

5
$i=0; 
foreach($array as $key=>$data) { 
    if($i%2 == 0){ echo "Key: ".$data;} 
    else{ echo "Data: ".$data."<br />";} 
    $i++; 
} 

或者這個效果應該起作用。

值得一提的,雖然,它可能更好地解決這個問題(陣列)的源,使得它輸出正確的格式,你可以使用你原來的代碼,而不是此解決辦法。

+0

日Thnx,工作,但你有一個錯字 – 2010-02-15 19:10:40

0

你可能不想用foreach循環做這個,但是用函數調用。我不完全瞭解你的數據結構,因爲密鑰0似乎分配了兩個不同的值,請你詳細解釋一下嗎?

+0

這是一個多DEM陣列 – 2010-02-15 19:01:27

6

我不知道我理解的問題年很好..但看起來你需要在數組中的最後一個項目......有辦法得到一個數組的第一個/最後一個項目,而無需在它們之間迭代。

$last_item = end($array); 

看看在php manual的例子..

0

的疑問是混亂的。

中的foreach()循環,最後一次迭代值仍然在$鍵和$數據瓦爾,直到它們被改變。

2

第一和數組的最後一個元素:

foreach($array as $element) { 
    if ($element === reset($array)) 
     echo 'FIRST ELEMENT!'; 

    if ($element === end($array)) 
     echo 'LAST ELEMENT!'; 
} 
相關問題