我有以下两个数组:



第一个数组:

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的交集(翻转以将键用作值,反之亦然)。

09-30 14:17
查看更多