按键数组过滤数组

时间:2012-10-02 12:37:02

标签: php arrays filtering

  

可能重复:
  PHP Built-in Method to Get Array Values Given a List of Keys

PHP是否具有此purpuse的内置函数?

我有两个数组,首先与一些数据相关联。例如:

$data = array(
    'name'      => 'John',
    'last_name' => 'Smith',
    'address'   => 'NY, ...',
    'phone'     => '1234567'
);

另一个带键的数组:

$keys = array(
    'name', 
    'last_name'
);

在使用此函数后,我只获得第一个数组的值,该数组包含来自第二个数组的键。

$result = function($data, $keys);
print_r($result);

// array(
//    'name'      => 'Jonh',
//    'last_name' => 'Smith'
// )

2 个答案:

答案 0 :(得分:4)

尝试以下方法:

$result = array_intersect_key($data, array_fill_keys($keys, null));

答案 1 :(得分:2)

 $data = array(
      'name'      => 'John',
      'last_name' => 'Smith',
      'address'   => 'NY, ...',
      'phone'     => '1234567'
  );

  $keys = array('name', 'last_name');

 print_r(array_intersect_key($data, array_flip($keys)));