2011-09-02 55 views
1

有沒有簡單的方法來循環使用foreach數組的值,但只是針對偶數鍵。例如一個這樣的數組:PHP使用偶數鍵從數組中獲取值?

[0] => val0 
[1] => val1 
[2] => val2 
[3] => val3 
[4] => val4 

等...

如何i循環通過只連鍵,如:0,2和4?

感謝提前:)

回答

10

在你的foreach,您可以拿到鑰匙也只是檢查是否多數民衆贊成甚至與否。

foreach($array as $key => $value) 
{ 
    if($key%2 != 0) //The key is uneven, skip 
    continue; 
//do your stuff 
} 
+0

漂亮!應該想到的哈哈:) – Jai

5

這從循環

$even = range(0, count($arr), 2); 
foreach ($even as $i) 
{ 
    echo $arr[$i]; // etc 
} 
+0

foreach將不得不循環較少,但如果它實際上更快是另一個問題。我的猜測是範圍函數中有另一個循環,因此速度較慢。無論如何,它甚至不值得優化。 – TJHeuvel

+0

請在範圍函數中定義另一個循環。 – ajreal

+0

PHP的內部實現範圍很可能有另一個循環。但是從C++開始,這會更快。 – TJHeuvel

5

節省50%我看到已經有2個答案是會做的伎倆,但這裏的另外一個,不使用foreach()

for ($i = 0, $c = count($array); $i < $c; $i += 2) 
+0

你是最棒的! – ajreal

+0

恩,謝謝。 'range()'解決方案也非常整潔 - 沒有看到有人來。 :) – Narf

+0

到目前爲止,這樣做的最好和最有效的方式,我經常使用(仍然迭代,但沒有無意義的條件檢查)。初始$我1到奇數指數。 –

0
for ($i=0; array_key_exists($i, $array); $i+=2) { 
    echo $array[$i] . "\n"; 
}