美文网首页
利用二维数组的key值去重和拼接

利用二维数组的key值去重和拼接

作者: Jake林煜 | 来源:发表于2016-07-14 11:19 被阅读0次

当遇到取出的data是个二维数组且其中会有部分一维数组重复或者只有极个别字段不同,而你想过滤重复,

只需要将一维数组的某个字段作为key就可以去除重复。

例:

数据中有两个相同的数组,将其中的id作为二维数组的key就可以过滤相同数组,结果为:

使用的方法如下

$arr是要修改的数组,$key是要用来作为key的某个字段,遍历数组并取出$item中的字段作为$result的key,并将$result[$rKey]赋予原来的item的值,这样result就是以该字段作为key的二维数组

这是通过以某个字段为key来过滤重复数据,如果在一维数组中的大部分字段一样,只有个别不同且你只需要其中一条数据,则将数组根据这个字段进行排列再进行过滤,例如:

根据order排序之后从小到大顺序排列,这样在通过key过滤时只会保留排在后面的那一条数据。根据场景不同,order可以是时间戳等等

延伸:这个方法还可以用作数据的拼接。数据如下:

这两个数组我都用了字段name的值为key值,因此只需遍历其中一个数组并判断是否存在这个key,代码如下:

得到的的数据为:

第二个数组$v的数据会拼接在第一个数组中同一key值的一维数组内。

注意的是在用完key过滤之后输出结果时要用array_values输出键值,不保留键名。

此外如果你用的是yii框架就不需要那么麻烦,在数据库取数的时候就可以直接将某个字段做key。

用yii查找数据时加上indexBy(‘id’),取出的数据则是用id这个字段的值来做key。

而当一维数组要去重时,php有内置函数array_unique可以去除重复数据。

知识浅薄。。。分享的是很简单且实用的东西。。。

相关文章

  • 利用二维数组的key值去重和拼接

    当遇到取出的data是个二维数组且其中会有部分一维数组重复或者只有极个别字段不同,而你想过滤重复, 只需要将一维数...

  • ES6易忘的好用知识点

    1.数组字符串去重 利用es6的set数据结构特性:成员的值都是唯一的 来完成数组去重 2.获取json的key和...

  • 数组去重最大值二维数组

    本篇含有数组去重,最大值最小值,API剩下的四个还有二维数组 一、数组去重、最大值 1.去重(方法很多,这...

  • 一个简单的数组对象去重,方便cv

    // 数组去重 arr:数组;key:根据数组中为key的键名去重 filterArr(arr, key) {...

  • 七、Set,Map

    Set,类似数组,但成员值都是唯一的 1、遍历,key和value一样 2、数组去重 3、合并去重 4、取两个数组...

  • 数组对象去重的常见操作

    前言: 数组对象去重与数组去重的不同点在于,数组对象需要指定一个属性(key值)再进行去重。 1.数组对象的自定义...

  • JavaScript | 使用es6语法去重

    JS数组去重 过滤器和indexof 循环和indexof 把数组的值作为对象的键 利用数组的循环和include...

  • ES6小技巧

    1- 数组去重 数组拼接 assign

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • js json数组去重

    上代码 arr:要去重的json数组,key:key值(例如:id) function jsonUniq(arr,...

网友评论

      本文标题:利用二维数组的key值去重和拼接

      本文链接:https://www.haomeiwen.com/subject/lensjttx.html