基于参考关联数组对关联数组进行重新排序


re-order associative array based on reference associative array

我有两个关联数组

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

有什么好方法可以重新排序目标以匹配密钥的$reference顺序,并忽略$target中不存在的密钥,从而使最终的

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

不确定这是否是您所需要的,但以下是我对您的要求的解释。

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

http://php.net/manual/en/function.array-intersect-key.php和http://php.net/manual/en/function.ksort.php

ksort(array_entersect_key($target,$reference));