Php 从两个值相等的多维数组中获取密钥
我有两个多维数组,需要获取数组值同时属于$a和$b的键。在这种情况下,结果必须是具有162键的数组Php 从两个值相等的多维数组中获取密钥,php,arrays,Php,Arrays,我有两个多维数组,需要获取数组值同时属于$a和$b的键。在这种情况下,结果必须是具有162键的数组 $a: Array ( [161] => Array ( [idAgent] => 30 [idClient] => 97 ) [163] => Array ( [idAgent] => 30 [idClient] => 107 ) [712] => Arr
$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
)
...
)
我试过了,但运气不好,是这样的:
$result: Array
(
[162] => Array
(
[idAgent] => 30
[idClient] => 97
)
...
)
或者,最好创建一个多数组,然后提取重复的数组?您可以使用它(通过回调函数比较数组的交集)
我的示例中的函数只是为了更容易地比较字符串
如果需要搜索idAgent
和idClient
的唯一组合,请将它们作为字符串放在一起进行比较
array_intersect_uassoc( $a, $b, function ($A, $B){
return ($A['idAgent'] - $B['idAgent']);
});
所以只有
idAgent
需要匹配?@casimirithippolyte的可能重复项,正如OP所要求的那样(与idAgent
和idClient
属性不相等),所以函数不会将它们视为交集。@casimirithippolyte哦,我明白了。相应地更新了我的答案。正确,但我不能将此标记为正确答案,因为我没有必要的信誉点数。德克萨斯州。
$result = array_uintersect( $a, $b, function($A, $B){
return strcmp($A['idAgent'] . '_' . $A['idClient'], $B['idAgent'] . '_' . $B['idClient']);
});