多维阵列上使用array_intersect [英] Using array_intersect on a multi-dimensional array
本文介绍了多维阵列上使用array_intersect的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有两个数组,这两个看起来像这样:
I have two arrays that both look like this:
Array
(
[0] => Array
(
[name] => STRING
[value] => STRING
)
[1] => Array
(
[name] => STRING
[value] => STRING
)
[2] => Array
(
[name] => STRING
[value] => STRING
)
)
和我想能够由两个主阵列内的比较子阵列的ID复制array_intersect。到目前为止,我还没有在我的尝试是成功的。 (
and I would like to be able to replicate array_intersect by comparing the ID of the sub arrays within the two master arrays. So far, I haven't been successful in my attempts. :(
推荐答案
使用 和array_uintersect()
中使用自定义比较函数,就像这样:
Use array_uintersect()
to use a custom comparison function, like this:
$arr1 = array(
array('name' => 'asdfjkl;', 'value' => 'foo'),
array('name' => 'qwerty', 'value' => 'bar'),
array('name' => 'uiop', 'value' => 'baz'),
);
$arr2 = array(
array('name' => 'zxcv', 'value' => 'stuff'),
array('name' => 'asdfjkl;', 'value' => 'foo'),
array('name' => '12345', 'value' => 'junk'),
array('name' => 'uiop', 'value' => 'baz'),
);
$intersect = array_uintersect($arr1, $arr2, 'compareDeepValue');
print_r($intersect);
function compareDeepValue($val1, $val2)
{
return strcmp($val1['value'], $val2['value']);
}
这将产生,正如你所期望:
which yields, as you would hope:
Array
(
[0] => Array
(
[name] => asdfjkl;
[value] => foo
)
[2] => Array
(
[name] => uiop
[value] => baz
)
)
这篇关于多维阵列上使用array_intersect的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文