我想合併這兩個數組的基礎上,他們的關鍵,只保留關鍵匹配。合併的數組應該保留該鍵,並且該值應該來自第二個數組。PhP:合併具有匹配鍵的數組,並刪除/刪除額外的不匹配的值
陣列#1:美國我去過
Array
(
[AL] => 113
[AZ] => 83
[CA] => 50
[CO] => 1
...
陣列#2:所有國家
Array
(
[AL] => ALABAMA
[AK] => ALASKA
[AZ] => ARIZONA
[AR] => ARKANSAS
[CA] => CALIFORNIA
[CO] => COLORADO
[CT] => CONNECTICUT
...
所以,如果我去過的狀態,我d喜歡從數組2中獲取該狀態的名稱。並拋出數組#2中的任何不匹配的節點。
所需的結果
Array
(
[AL] => ALABAMA
[AZ] => ARIZONA
[CA] => CALIFORNIA
[CO] => COLORADO
...
我已經做了廣泛的研究,在PHP手冊和StackOverflow上,並不能找到一個特定的答案。我認爲它可能存在於一個更復雜的用戶定義函數中,而不是我現在能夠做到的。
array_merge()
幾乎我想要做什麼,但隨後補充說我也沒去過到陣列
array_intersect_key()
也得到接近結束時的狀態。它只保留匹配的鍵,但是卻沒有值。
['array_intersect_key()'](http://php.net/array_intersect_key)的問題可能是您的數組順序錯誤。它保留了它傳遞的第一個數組的值,所以你希望array#2作爲第一個參數,然後array#1作爲第二個參數。 – Wiseguy 2013-03-09 03:18:07