只显示复制从数组元素 [英] Show only duplicate elements from an array

查看:146
本文介绍了只显示复制从数组元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含人名字的排序的数组。
这个数组有很多这是同名。

我要输出只重名。

例如:

输入数组:


排列

    [0] =>阿巴斯
    [1] =>阿沛
    [2] =>阿比纳夫
    [3] =>阿布舍克巴克
    [4] =>阿迪亚
    [5] =>艾哈迈德
    [6] =>艾哈迈德
    [7] =>阿贾伊
    [8] =>阿贾伊
}

这应该返回


排列

    [5] =>艾哈迈德
    [6] =>艾哈迈德
    [7] =>阿贾伊
    [8] =>阿贾伊
}


解决方案

使用此code:

 #假设你的原始数组$ ARR
array_unique(和array_diff_assoc($ ARR,array_unique($ ARR)));

这将返回独特的重复但是如果你想要的非唯一重复,然后用

 和array_diff_assoc($ ARR,array_unique($ ARR));

编辑:根据您的意见,试试这个code:

  $ uarr = array_unique($ ARR);
后续代码var_dump(和array_diff($改编,和array_diff($ uarr,和array_diff_assoc($改编,$ uarr))));

输出

 阵列(4){
  [5] =>
  串(5)艾哈迈德
  [6] =>
  串(5)艾哈迈德
  [7] =>
  串(4)阿杰
  [8] =>
  串(4)阿杰
}

I have an sorted array which contains first names of people. This array has lots of names which are same.

I want to output only duplicate names.

Example,

input array:

Array
(
    [0] => Abbas
    [1] => Abhay
    [2] => Abhinav
    [3] => Abhishek
    [4] => Aditya
    [5] => Ahmed
    [6] => Ahmed
    [7] => Ajay
    [8] => Ajay
}

It should return

Array
(
    [5] => Ahmed
    [6] => Ahmed
    [7] => Ajay
    [8] => Ajay
}

解决方案

Use this code:

# assuming your original array is $arr
array_unique(array_diff_assoc($arr, array_unique($arr)));

It will return unique duplicates but if you want non-unique duplicates then use:

array_diff_assoc($arr, array_unique($arr));

EDIT: Based on your comments, try this code:

$uarr = array_unique($arr);
var_dump(array_diff($arr, array_diff($uarr, array_diff_assoc($arr, $uarr))));

OUTPUT

array(4) {
  [5]=>
  string(5) "Ahmed"
  [6]=>
  string(5) "Ahmed"
  [7]=>
  string(4) "Ajay"
  [8]=>
  string(4) "Ajay"
}

这篇关于只显示复制从数组元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆