PHP二维数组多字段去重

二位数组多字段去重

不指定一个字段去重,判断所有字段是否有重复

$arr = [
    0 => [
        ‘name‘ => ‘name1‘,
        ‘age‘  => ‘10‘
    ],
    1 => [
        ‘name‘ => ‘name1‘,
        ‘age‘  => ‘11‘
    ],
    2 => [
        ‘name‘ => ‘name2‘,
        ‘age‘  => ‘10‘
    ],
    3 => [
        ‘name‘ => ‘name2‘,
        ‘age‘  => ‘10‘
    ]
];

  

方法:

$res  = [];
foreach ($arr as $key => $value) {
    //重新排序value
    ksort($value);
    //获取key ,判断是否存在的依据
    $key = implode("_", $value);   //name1_10
    //md5 为了防止字段内容过长特殊字符等
    $res[md5($key)] = $value;
}
//重置索引
$res = array_values($res);

var_dump($res);

原文地址:https://www.cnblogs.com/inkwhite/p/12222690.html

时间: 2024-07-29 14:37:16

PHP二维数组多字段去重的相关文章

数组合并函数,二维数组相同字段合并到一起。

一般从数据库中提取数据时,会遇到各种各样类型的数据,要求也不尽相同.自己这两天开发的时候遇到一个很纠结的问题,如下: 比如一个二维数组是这样的: Array ( [0] => Array ( [uid] => 231 [username] => 123456 [active] =>aaaa [transfer] =>1111 ) [1] => Array ( [uid] => 231 [username] =>123456 [active] => bb

PHP获取二维数组指定字段值的和

array_sum(array_column($arr, 'num')); //获取二维数组 num字段的和 $arr = [ [ 'device_uid' => '123456', 'num' => '5', ], [ 'device_uid' => '123457', 'num' => '2', ], [ 'device_uid' => '123458', 'num' => '4', ], ]; echo '<pre>'; //先对二维数组进行处理,再对

二维数组按照指定的字段排序的函数

/** * 二维数组根据字段进行排序 * @params array $array 需要排序的数组 * @params string $field 排序的字段 * @params string $sort 排序顺序标志 SORT_DESC 降序:SORT_ASC 升序 */ function arraySequence($array, $field, $sort = 'SORT_DESC') { $arrSort = array(); foreach ($array as $uniqid =>

二维数组里,根据数组字段为条件,进行总体排序(二维排序)

1 <?php 2 /** 3 * 二维数组根据某个字段排序 4 * 功能:按照用户的年龄倒序排序 5 * @author ruxing.li 6 */ 7 header('Content-Type:text/html;Charset=utf-8'); 8 $arrUsers = array( 9 array( 10 'id' => 1, 11 'name' => '张三', 12 'age' => 25, 13 ), 14 array( 15 'id' => 2, 16 '

二维数组去重

function arrayUnique($array2){ foreach ($array2 as $key => $value) { $v=join(',',$v);//二维变成一维 $tmp[]=$v; } //一维数组去重 $tmp=array_unique($tmp); foreach ($tmp as $key => $value) { $tmp[$key]=explode(',', $value); } return $tmp; } 利用内部函数array_unique,将二维数

PHP 二维数组根据某个字段排序

原文:PHP 二维数组根据某个字段排序 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 遇到这个要求的时候就不是 ORDER BY 能解决的问题了.因此翻看 PHP 手册查找到了如下方法,做此笔记. <?php /** * 二维数组根据某个字段排序 * 功能:按照用户的年龄倒序排序 * @author ruxing.li */ header('Content-Type:text/html;Charset=utf-8'

PHP二维数组去重的方法(保留各个键值的同时去除重复的项)-- 二维数组的唯一性

对于如下二维数组,要求对其进行去重: $arr = array( '0'=>array( 'name'=>'james', 'age'=>30, ), '1'=>array( 'name'=>'susu', 'age'=>26, ), '2'=>array( 'name'=>'james', 'age'=>30, ), 'new'=>array( 'name'=>'kube', 'age'=>37, ), 'list'=>arr

PHP二维数组如何根据某个字段排序

分享下PHP二维数组如何根据某个字段排序的方法. 从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求. 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 这个要求就不是 ORDER BY 能解决的问题了.因此翻看 PHP手册查找到了如下方法,做此笔记.

PHP 二维数组去重

直接上代码 //二维数组去重$data = array(    0 => array('num' => '110', 'name' => 'nick1'),    1 => array('num' => '111', 'name' => 'nick2'),    2 => array('num' => '110', 'name' => 'nick3'),    3 => array('num' => '112', 'name' =>