2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > php二维数组添加键名 PHP二维数组去重(指定键名)

php二维数组添加键名 PHP二维数组去重(指定键名)

时间:2020-12-10 06:25:13

相关推荐

php二维数组添加键名 PHP二维数组去重(指定键名)

本例对二维数组中某个指定键名进行去重,发现网上大多使用array_unique或是foreach遍历等方式去重,效果不佳且较为繁琐。

本文以二维数组去重为引,介绍array_column函数的三种用法。

以下是本人常用的去重方法:

以指定字段为索引,自然会把索引字段中重复的值覆盖掉, 然后在去除关联索引就可以了

//array_column第一种用法,以指定字段为索引

$data= array(

array('id' => 123, 'name' => '张三'),

array('id' => 123, 'name' => '李四'),

array('id' => 124, 'name' => '王五'),

array('id' => 125, 'name' => '赵六'),

array('id' => 126, 'name' => '赵六')

);

上述是一个二维数组,我们需要把相同 id 的记录去掉,即一个ID只保留一条记录;只使用第三个参数试验,

$data = array_column($data, NULL, 'id'); //以ID为索引

$data = array_values($data);//去除关联索引

OK,去重完成,此时$data数据如下:五条记录变为四条

$data= array(

array('id' => 123, 'name' => '张三'),

array('id' => 124, 'name' => '王五'),

array('id' => 125, 'name' => '赵六'),

array('id' => 126, 'name' => '赵六')

);

另外,讲下第二个参数,代表需要保留的(单)列,下面我们将使用第二个参数,而不使用第三个参数。

array_column第二种用法:

$data = array_column($data, 'name');

此时二维数组只保留 name 字段,id字段被删除,数据如下:

$data= array(

array('name' => '张三'),

array('name' => '李四'),

array('name' => '王五'),

array('name' => '赵六'),

array('name' => '赵六')

);

array_column的第三种用法,

三个参数全部使用: 用来构造 'id' => 'name' 形式的数据

$data = array_column($data, 'name', 'id');

此时数据如下:此时ID重复的也被剔除了,前面的被覆盖。

$data = array(

'123' => '李四',

'124' => '王五',

'125' => '赵六',

'126' => '赵六'

);

see you ~

PHP二维数组根据某个键名排序

$result = array( array( "amount": "11.00", "date": ...

php二维数组去重

php二维数组去重 前言:php一维数组去重很简单,直接array_unique($arr)即可,但是二维数组去重就得自己去写了 二维数组去重方法: /* * 二维数组去重 * 注意:二维数组中的元素 ...

VB6 二维数组去重实现

关于VB6的二维数组去重算法实现 当然,这里还是有局限性,当我们的数组被填满了各个不同的值时,例如下方 700*700 = 490000 就要While49万次,这谁受得了? 所以以下仅适合小规模使用 ...

二维数组过滤,根据多个条件获取二维数组中指定的arr

/** * 二维数组过滤,根据多个条件获取二维数组中指定的arr * @param $data_arr * @param $lm_number * @param $source_type * @par ...

如何使用python将二维数组去重呢?

二维数组的去重,能和一维的方法类似吗?import numpyc=np.array(((1,2),(3,4),(5,6),(7,8),(7,8),(3,4),(1,2)))print('二维数组:\n ...

np.unique()对一维和二维数组去重

numpy.unique(ar, return_index=False, return_inverse=False, return_counts=False, axis=None)[source] 一 ...

PHP 距离我最近排序+二维数组按指定列排序

思路: 1.获取我的位置,即:我的经纬度 2.各站点须有位置 即:排序对象有位置经纬度 3.查询要排序的站点列表 4.循环遍历计算 与我的距离 5.二维数组按 指定列(距离)排序 具体如下: ...

PHP 二维数组去重(保留各个键值的同时去除重复的项)

对于如下二维数组,要求对其进行去重: $arr = array( '=>array( 'name'=>'james', , ), '=>array( 'name'=>'susu ...

PHP二维数组--去除指定列含有重复项的数组

给定二维数组: $arr = array( '0' => array('张三',2,3,4), '1' => array('李四',2,3,4), '2' => array('张三' ...

随机推荐

File相关的读取和写入以及复制

import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileI ...

利用在线工具自动化生成findviewById

我们在编码的时候经常会用到findviewById,不厌其烦,我之前介绍过一个很取巧的方法,挺好用的,这里再贴一下: public class KaleBaseActivity extends Act ...

oracle在线重定义表

在一个高可用系统中,如果需要改变一个表的定义是一件比较棘手的问题,尤其是对于7×24系统.Oracle提供的基本语法基本可以满足一般性修改,但是对于把普通堆表改为分区表,把索引组织表修改为堆表等操作就 ...

#define使用方法

1.简单的define定义 #define MAXTIME 1000 一个简单的MAXTIME就定义好了,它代表1000,假设在程序里面写 if(i

(Problem 53)Combinatoric selections

There are exactly ten ways of selecting three from five, 12345: 123, 124, 125, 134, 135, 145, 234, 2 ...

Bash扩展顺序

当进行变量替换.命令替换.数学扩展以及路径扩展时,Bash Shell遵循如下顺序: 1.大括号扩展 $ls f{oo,aa,unble} 2.~扩展 ~cb, ~/doc/working 3.命令参 ...

设计模式 --> (11)桥接模式

桥接模式 将抽象部分与它的实现部分分离,使它们都可以独立地变化. 适用性: 1.当一个对象有多个变化因素的时候,考虑依赖于抽象的实现,而不是具体的实现.如上面例子中手机品牌有2种变化因素,一个是品牌, ...

oc 语法基础

1:https://mp./s/IqICB4aW2vZdU0382S9sTA <1-7高质量OC代码> 2:/qq_3 ...

python 中r 和 &bsol;r

r'xxx' 转义 如果在前面加r字符,则表示让这个字符串里面的内容失去转义的意义 1 s = r'\n这只是\n' # 字符串中的"\n"只是字符,没有换行的意义了. 2 pri ...

js splice函数 数组增加,替换,删除

splice函数参数介绍: 第一个参数: 对于数数组的操作起始位置. 第二个参数: 从第一个参数开始,删除数组中的个数. 从第三个参数之后所有参数(如果有):执行完第二步之后,都插入到第一个参数的起始 ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。