$a: Array
(
[161] => Array
(
[idAgent] => 30
[idClient] => 97
)
[163] => Array
(
[idAgent] => 30
[idClient] => 107
)
[712] => Array
(
[idAgent] => 12
[idClient] => 349
)
[718] => Array
(
[idAgent] => 12
[idClient] => 57
)
[721] => Array
(
[idAgent] => 9
[idClient] => 236
)
[729] => Array
(
[idAgent] => 12
[idClient] => 118
)
[739] => Array
(
[idAgent] => 20
[idClient] => 483
)
...
)
$b: Array
(
[160] => Array
(
[idAgent] => 31
[idClient] => 926
)
[162] => Array
(
[idAgent] => 30
[idClient] => 97
)
...
)
我有两个多维数组,我需要获取其数组值同时属于$ a和$ b的键。在这种情况下,结果必须是具有162键的数组。
$result: Array
(
[162] => Array
(
[idAgent] => 30
[idClient] => 97
)
...
)
我试过了,但没有运气,这样的事情:
array_intersect_uassoc( $a, $b, function ($A, $B){
return ($A['idAgent'] - $B['idAgent']);
});
或者,最好创建一个多数组,然后提取重复数据?
答案 0 :(得分:1)
您可以只使用array_uintersect(通过回调函数比较数组的交集)。
我的示例中的strcmp函数只是为了更容易比较字符串。
如果您需要搜索idAgent
和idClient
的唯一组合,请将它们作为字符串放在一起进行比较。
$result = array_uintersect( $a, $b, function($A, $B){
return strcmp($A['idAgent'] . '_' . $A['idClient'], $B['idAgent'] . '_' . $B['idClient']);
});