2 个数组的交集,即使拼写错误
Intersection of 2 arrays even if misspelled
$a = array('apple', 'banana', 'orange'); //etc...
$b = array('papel', 'abanan', 'grape'); //etc...
输出应该是'apple', 'banana'
.....你需要使用一些内置的数组方法。
在第二个数组中,请注意单词 'apple' 和 'banana' 拼写错误。 'papel'、'abanan'也可以是'leppa'、'nnaab'等格式,但必须包含对应单词的所有字母。
好的,所以你说 "unique" 这意味着 差异 但你的示例显示 交叉点 。如果您需要它,请改用 array_udiff()
:
$result = array_uintersect($a, $b, function($a, $b) {
$a = str_split($a);
$b = str_split($b);
sort($a);
sort($b);
implode($a);
implode($b);
if($a == $b) {
return 0;
} elseif ($a > $b) {
return 1;
} else {
return -1;
}
});
- 将字符串拆分为数组
- 对数组进行排序
- 爆回字符串
- 比较字符串
- 通过
array_uintersect()
returns 中 $b
中的 $a
元素调用
产量:
Array
(
[0] => apple
[1] => banana
)
$a = array('apple', 'banana', 'orange'); //etc...
$b = array('papel', 'abanan', 'grape'); //etc...
输出应该是'apple', 'banana'
.....你需要使用一些内置的数组方法。
在第二个数组中,请注意单词 'apple' 和 'banana' 拼写错误。 'papel'、'abanan'也可以是'leppa'、'nnaab'等格式,但必须包含对应单词的所有字母。
好的,所以你说 "unique" 这意味着 差异 但你的示例显示 交叉点 。如果您需要它,请改用 array_udiff()
:
$result = array_uintersect($a, $b, function($a, $b) {
$a = str_split($a);
$b = str_split($b);
sort($a);
sort($b);
implode($a);
implode($b);
if($a == $b) {
return 0;
} elseif ($a > $b) {
return 1;
} else {
return -1;
}
});
- 将字符串拆分为数组
- 对数组进行排序
- 爆回字符串
- 比较字符串
- 通过
array_uintersect()
returns 中$b
中的
$a
元素调用
产量:
Array
(
[0] => apple
[1] => banana
)