我想使用与in_array相同的原则,但是使用双数组并且只搜索第一个值。让我解释一下:
$array_1 = [["1","aaa"],["2","bbb"],["3","aaa"],["4","ddd"]]
$array_2 = [["2","bbb"],["3","aaa"],["4","ddd"]]
现在我想要函数return ["1", "aaa"],因为这部分不在第二个数组中。但是我只想用id(数字1、2、3和4)搜索差异,而不是用可以相似的文本搜索差异,而不是用id搜索差异。
试试array_udiff
函数:
$array_1 = [["1", "aaa"], ["2", "bbb"], ["3", "aaa"], ["4", "ddd"]];
$array_2 = [["2", "bbb"], ["3", "aaa"], ["4", "ddd"]];
$output = array_udiff($array_1, $array_2, function($a, $b){
if ($a[0] < $b[0]) {
return -1;
} else if ($a[0] > $b[0]) {
return 1;
}
return 0;
});
var_dump($output);
输出:array (size=1)
0 =>
array (size=2)
0 => string '1' (length=1)
1 => string 'aaa' (length=3)