2014-10-01 36 views
0

使用array_unique在此之後今天碰上了:如何循環遍歷數組JS在PHP

$test = array('red', 'red', 'green', 'red', 'green', 'blue', 'blue', 'red', 'blue'); 
$test = array_unique($test); 

返回結果:

Array 
(
    [0] => red 
    [2] => green 
    [5] => blue 
) 

這是通過$ajax_result['results'] = $test傳遞給JS腳本。現在我怎麼能在js中做一個foreach循環,因爲array_unique保留了鍵?

for(var i = 0; i < response.results.length; i++) 
{ 
    //do something 
} 

他們密鑰不再0,1,2,3 ...... *長,但0,2,5因爲他們將被保留。

+0

可以很容易:只要使用'array_values()'在PHP中生成的陣列上重置鍵。 – bwoebi 2014-10-01 21:08:55

回答

1

如果你沒有支持IE8,你想那些鍵被保留:

var response = {results: {0: 'red', 2: 'green', 5: 'blue'}}; 
Object.keys(response.results).forEach(function(key) { 
    console.log(key, response.results[key]); 
}); 

輸出:

0 red 
2 green 
5 blue 

如果你不希望保存的密鑰:

$test = array('red', 'red', 'green', 'red', 'green', 'blue', 'blue', 'red', 'blue'); 
$test = array_values(array_unique($test)); 
0

只使用

for (var i in response.results) { 
    alert(response.results[i]); 
} 

假設你有一個對象:

var obj = { 0:"zero", 1:"one" }; 

for (var i in obj) { 
    alert(obj[i]); 
}