array_combine()的问题

时间:2015-10-27 02:42:09

标签: php arrays

我有两个数组。一个人的数组键是另一个值。这是代码:

$arr1 = array(
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'pear',
);

$arr2 = array(
    'bird' => 'a',
    'dog' => 'b',
);

我的问题是,如何将两个数组组合在一起,如:

$arr3 = array(
    'bird' => 'apple',
    'dog' => 'banana',
);

是否有一些数组函数可能会这样做?

2 个答案:

答案 0 :(得分:1)

<?php
$arr3 = array();

foreach ($arr2 as $item => $value) {
  $arr3[$item] = $arr1[$value];
}
print_r($arr3);
无论如何,还有一些事情。

如果你真的想要合并数组,array_merge将完成工作。

答案 1 :(得分:1)

修改:这是一种有趣的方式并匹配键:

$arr3 = array_combine(array_intersect_key($k = array_flip($arr2), $arr1),
                      array_intersect_key($arr1, $k));

原始且无密钥匹配

这是一种方式。哪个阵列更长并不重要:

$arr3 = array_combine(array_slice(array_keys($arr2), 0, count($arr1)),
                      array_slice($arr1, 0, count($arr2)));