2015-04-01 56 views
2

這裏是我的$keys陣列:如何從數組中使用另一個數組的值作爲鍵來選擇一個值的子集?

Array 
(
    [0] => 1 
    [1] => 3 
    [2] => 4 
) 

而且我$values

Array 
(
    [0] => Red 
    [1] => Orange 
    [2] => Yellow 
    [3] => Green 
    [4] => Blue 
) 

我想在$values$keys創造一些新的值數組使用的值作爲鍵:

Array 
(
    [1] => Orange 
    [3] => Green 
    [4] => Blue 
) 

顯然我可以foreach獲得我想要的值,但我想確保我不會在衆多的PHP數組函數中忽略某些東西。

我google了這個問題,並回答爲使用array_combine,它不會達到預期的輸出。

您的幫助表示讚賞:)

+0

在'$ keys'數組中存在重複值的情況下,可能查看鏈接的第二個答案。 – AbraCadaver 2015-04-01 15:30:41

+0

謝謝。我很慚愧地重複了一個問題:/ – Kalessin 2015-04-01 16:44:30

回答

5

翻轉的$keys陣列,使值的鍵,然後用array_intersect_key()

$result = array_intersect_key($values, array_flip($keys)); 

$values具有相同的鍵作爲翻轉$keys返回值。

+0

確實,我不明白爲什麼OP不想使用'foreach'? – SaidbakR 2015-04-01 15:27:11

+0

@sємsєм:我對'foreach'沒有問題,但如果有一個內置函數可以實現相同的目標,它可能會更快,不是嗎? – Kalessin 2015-04-01 16:45:48

相關問題