我有以下两个数组:
第一个数组:
Array
(
[0] => 3
[1] => 4
[2] => 9
[3] => 11
)
第二数组:
Array
(
[3] => stdClass Object ( [tid] => 3 )
[12] => stdClass Object ( tid] => 12 )
[9] => stdClass Object ( [tid] => 9 )
)
因此,我应该得出以下结论:
Array
(
[3] => stdClass Object ( [tid] => 3 )
[9] => stdClass Object ( [tid] => 9 )
)
最佳答案
你可以这样做:
$keys = array_map(function($val) { return $val['value']; }, $first);
$result = array_intersect_key(array_flip($keys), $second);
array_map
调用将从$first
中提取值值,以便$keys
是这些值的数组。然后使用 array_intersect_key
来获取$keys
与第二个数组$second
的交集(翻转以将键用作值,反之亦然)。