PHP二维数组,多参数去重

/**
**PHP二维数组,多参数去重
**$arr 原始数组
**$filter 条件,多条件传数组
**return new去重后数组
*/
function array_unique_fb($arr=array(),$filter){   
    $res = array();      
    foreach ($arr as $key => $value) {
        $newkey='';
        if (is_array($filter)) {
            foreach ($filter as $fv) {
                $newkey.=$value[$fv];
            }
        }else{
            $newkey=$value[$filter];
        }
        foreach ($value as $vk => $va) {
            if (isset($res[$newkey])) {
                $res[$newkey][$vk]=$va;
            }else{
                $res[$newkey][$vk]=$va;
            }
        }
    }
    return $res;
}

实测

$waredata=array (
  21007 => 
  array (
    'wareid' => '2',
    'warename' => '南京仓库',
    'wareno' => 'nj0001',
    'forwarename' => '管家wms仓储',
    'forwareno' => '1001',
  ),
  216 => 
  array (
    'wareid' => '2',
    'warename' => '南京仓库',
    'wareno' => 'nj0001',
    'forwarename' => '胡工荷兰OMS仓库别动',
    'forwareno' => '10',
  ),
  112 => 
  array (
    'wareid' => '1',
    'warename' => '北京仓库',
    'wareno' => 'bj0001',
    'forwarename' => '胡工荷兰OMS仓库别动',
    'forwareno' => '10',
  ),
  211 => 
  array (
    'wareid' => '2',
    'warename' => '南京仓库',
    'wareno' => 'nj0001',
    'forwarename' => '胡工荷兰OMS仓库别动',
    'forwareno' => '10',
  ),
  111 => 
  array (
    'wareid' => '1',
    'warename' => '北京仓库',
    'wareno' => 'bj0001',
    'forwarename' => '胡工荷兰OMS仓库别动',
    'forwareno' => '10',
  ),
);

$tem=array_unique_fb($waredata,array('wareid','forwareno'));
echo "<pre>";print_r($tem);die();

输出

Array
(
    [21001] => Array
        (
            [wareid] => 2
            [warename] => 南京仓库
            [wareno] => nj0001
            [forwarename] => 管家wms仓储
            [forwareno] => 1001
        )

    [210] => Array
        (
            [wareid] => 2
            [warename] => 南京仓库
            [wareno] => nj0001
            [forwarename] => 胡工荷兰OMS仓库别动
            [forwareno] => 10
        )

    [110] => Array
        (
            [wareid] => 1
            [warename] => 北京仓库
            [wareno] => bj0001
            [forwarename] => 胡工荷兰OMS仓库别动
            [forwareno] => 10
        )

)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容