让我们选择两个阵列:
$aliases = array(
'id' => 'real_id',
'date' => 'real_date',
'name' => 'real_name'
);
$data = array(
'id' => 1,
'name' => 'Lorem ipsum'
);
我想检索$aliases
数组中定义的键的每个$data
值(无需检查密钥是否存在,此时我已使用array_intersect_key()
执行此操作)。这是预期的结果:
array('real_id', 'real_name');
目前,我可以使用foreach
:
$realkeys = array();
foreach(array_keys($data) as $key) {
$realkeys[] = $aliases[$key];
}
但是有没有任何本机PHP函数以更聪明的方式完成它?
答案 0 :(得分:4)
您可以像这样使用PHP的array_intersect_key
:
<?php
$aliases = array(
'id' => 'real_id',
'date' => 'real_date',
'name' => 'real_name'
);
$data = array(
'id' => 1,
'name' => 'Lorem ipsum'
);
print_r(array_values(array_intersect_key($aliases, $data)));
?>
数组([0] =&gt; real_id [1] =&gt; real_name)