首页 > 解决方案 > php,合并两个数组

问题描述

我有两个数组。第一个$letters很简单:

[5, 89, 1, 212]

第二个$some_data

[
 89 => 'A',
 41 => 'B',
 1  => 'C',
 5  => 'D',
 200 => 'E',
 212 => 'F'
]

如何合并这些数组以获得:

[
89 => 'A',
1  => 'C',
5  => 'D',
212 => 'F'
]

我已经试过了

foreach($some_data as $id => $title) {
        if (array_key_exists($id, $letters)) {
            $some_arr[$id] = $title;
        }
    }

但由于某种原因,它无法正常工作并且$some_arr被重复。这个填充的函数$some_arr在循环内被调用并接受一个参数。使用这个参数,我填充了 array $letters。每次(一般6次)数组$letter都不一样

$some_arr没有重复,当它曾经以这种方式填充时:

foreach($cont_cntrs as $cntr_id) {
        $cntrs_byletter[$cntr_id] = $countries[$cntr_id];
    }

但它不是按$countriesid的顺序排序的

标签: phparrayssorting

解决方案


您只想保留$letters数组中存在的所有条目。所以使用数组交集

$some_arr = array_intersect_key($some_data, array_flip($letters));

推荐阅读