【发布时间】:2016-01-28 14:50:38
【问题描述】:
我有两个数组:
$arr1 = array(101 => 250, 102 => 250, 103 => 250, 104 => 500, 105 => 500, 106 => 500,);
和
$arr2 = array(0 => 103, 1 => 104, 2 => 105)
我想要得到的结果是
Array (103 => 250, 104 => 500)
我尝试过使用
array_intersect(array_flip($arr1), $arr2);
但是
array_flip($arr1)
给出类似的东西
Array(103 => 250, 106 => 500)
因此,键会丢失并且无法正确相交。有没有办法得到想要的结果?
【问题讨论】:
-
键丢失并不意外 - array_flip 交换键和值,并且由于您有“重复”值,您将丢失一些键。您可以改用
array_intersect_keys(),它使用键而不是值进行交叉比较。
标签: php arrays array-intersect array-flip