数组中重复PHP输出元素的几种处理方法

1。可以直接使用PHP内置函数()()array_intersect
阵列(数组array_intersect array1,array2 {数组,数组…})
array_intersect()返回一个数组,包含在所有其他参数数组array1也显示的值。注意键名保持不变。
代码uff1a
复制代码代码如下所示:
< PHP
2美元=阵列(绿色
$ array2 =阵列(B=绿色
结果= array_intersect美元(美元美元array1,array2);
>

输出结果:
数组({绿色{ 0 } >红色)
2。也可以自己写一个算法:
复制代码代码如下所示:
< PHP
功能my_array_same($){
B = array_unique美元(美元);
R = array_diff_key美元($,$);

k = var_dump(array_unique(r));
返回k;
}
$ =数组(红色
R = my_array_same美元(美元);
var_dump(array_unique(r));
>

输出结果:
数组(2){
{ 3 } >
字符串(3)红色
{ 5 } >
字符串(4)粉红
}
三.也可以写这个:
复制代码代码如下所示:
< PHP
功能my_array_intersect($ ARR1 arr2美元){
为($我= 0;$我<计数($ arr1);$ i++){
{ } =美元美元的温度前{ $我};
}
为($我= 0;$我<计数($ arr1);$ i++){
$临时{ } = { $ $ arr2我};
}
排序($临时);
$ =数组();
($ i = 0;$ i <计数($);$ + +){
如果($ $ i $ = $ $ $ I + 1 })
$;
}
返回$;
}
2美元=阵列(绿色
$ array2 =阵列(绿色

print_r(my_array_intersect($美元array1,array2));

>

如果数组是一维的,第三个算法比第一个算法快。所有这些算法都适用于一维阵列。那么我们如何在多维数组中找到相同的元素呢

思想:多维数组可以转换成一维数组,然后使用上述算法输出。

代码uff1a
复制代码代码如下所示:
功能toarr($ ARR){以字符串形式返回递归 / /阵列
foreach(ARR美元美元美元K = > v){
如果(!is_array($ V)){
美元美元结构= V.;
}
别的{
战略= toarr美元($ V);
}
}
返回$ STR;
递归函数

上式变换的多维数组成一个字符串,然后使用发射功能,将它转换成一个一维数组。

联想,数据库返回字段名值是原因,当然,也可以通过sql语句实现。