0
点赞
收藏
分享

微信扫一扫

php二维数组去重(按指定键名)

乐百川 2022-04-15 阅读 50
php
//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' => '赵六'
);
举报

相关推荐

0 条评论