2013-08-01 149 views
1

我有兩個關聯數組重新排序關聯數組基於參考關聯數組

$reference = array(
    'type_drink' => 'value', 
    'type_plate' => 'value', 
    'type_fork' => 'value', 
    'non_type' => 'value' 
); 
$target = array(
    'type_plate' => 'value other', 
    'type_drink' => 'value other' 
); 

什麼是一個很好的方式重新排序目標相匹配的密鑰的$參考訂單,而忽略鍵不存在於$目標,以使最終

$target = array(
    'type_drink' => 'value other', 
    'type_plate' => 'value other' 
); 
+0

我會說'array_intersect_key($ target,$ reference)',但後來我發現你想要數組排序。 –

回答

2

不知道這是否是你需要的,但這裏是我解釋你要求的東西。

foreach($reference as $key => $val) 
{ 
    if(isset($target[$key])) 
     $tmp[$key] = $target[$key]; 
} 
$target = $tmp; 
+2

如果我正確地閱讀他的問題,我會說'$ tmp [$ key] = $ target [$ key]'。 – ironcito

+0

在我看來,他在找什麼。雖然,他可能實際上需要'$ tmp [$ key] = $ target [$ key];' –

+0

@RocketHazmat現在你提到它了,看起來是正確的。每個鍵的值是不同的。所以我會編輯。 – Izodn