我想比较两个阵列,$a
和$b
并需要它们的交集。无法在两个不同的阵列上执行交集
$a = [
['min' => 23 , 'max' => 987 , 'vmin' => 78],
['min' => 3 , 'max' => 87 , 'vmin' => 8],
['min' => 'faryaad' , 'max' => 987 , 'vmin' => 65]
];
$b = [
['min' => 23 , 'max' => 987 , 'vmin' => 78],
['min' => 'faryaad' , 'max' => 87 , 'vmin' => 8],
['min' => 203 , 'max' => 9807 , 'vmin' => 780]
];
$i = array_uintersect($a,$b,"comp");
function comp($val1,$val2) {
return $val1['min'] == $val2['min'] && $val1['max'] == $val2['max'] && $val1['vmin'] == $val2['vmin'] ;
}
print_r($i);
echo "<br />";
echo count($i);
在两个阵列,还有就是['min' => 23 , 'max' => 987 , 'vmin' => 78]
,我会希望得到的结果,以反映这件事情一个常见的事情。但结果是:
Array ([0] => Array ([min] => 23 [max] => 987 [vmin] => 78) [1] =>
Array ([min] => 3 [max] => 87 [vmin] => 8) [2] => Array ([min] =>
faryaad [max] => 987 [vmin] => 65))
3
它只是返回整个数组$a
。为什么这样?
这将返回一个空数组。 –
@SuhailGupta,你确定吗?我已经添加了链接到eval.in,以便您可以看到它确实会返回预期的输出。 – trincot
不知道,为什么我得到一个空数组 –