二维数组去重方法

<?php

function unique_arr($array2D,$stkeep=false,$ndformat=true)
{
    // 判断是否保留一级数组键 (一级数组键可以为非数字)
    if($stkeep) $stArr = array_keys($array2D);
    // 判断是否保留二级数组键 (所有二级数组键必须相同)
    if($ndformat) $ndArr = array_keys(end($array2D));
    //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
    foreach ($array2D as $v)
    {
    $v = join(",", $v);
    $temp[] = $v;
    }
        //去掉重复的字符串,也就是重复的一维数组
        $temp = array_unique($temp);
        //再将拆开的数组重新组装
        foreach ($temp as $k => $v)
        {
            if($stkeep) $k = $stArr[$k];
            if($ndformat)
            {
                $tempArr = explode(",",$v);
                foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;
            }
            else $output[$k] = explode(",",$v);
        }
        return $output;
    }

$sql2="select sbid from kaoshijihua";
$re=$db->query($sql2);

$ra=unique_arr($re);
var_dump($ra);

$sql3="select classid from kaoshijihua";
$rew=$db->query($sql3);
foreach($rew as $v)
{
    $reew[]=$v[0];
}
$raw=array_unique($reew);
//var_dump($raw);

?>

  

时间: 2024-11-06 13:48:58

二维数组去重方法的相关文章

js 二维数组去重(续)

之前写过二维数组去重,今天再翻出来看了看,简直不忍直视,如此垃圾,所以今天重新写一下咯. 二维数组去重,重复问题一定要和哈希联系起来,js和java不一样,没有map(es6有),但是js有object,键是不会重复的,不多说,代码如下: var matrix=[ [1,2,3,4], [3,4,5,6], [1,2,3,4] ] var removeRepeat=function(arr){ var obj={}; for(var i=0;i<arr.length;i++){ // 判断当前项

PHP使用array_unique对二维数组去重处理

array_unique函数就是可以处重的,它具备了这个功能了,下面我们一来看一个关于PHP使用array_unique对二维数组去重处理例子. php 5.2.9 版本增加了array_unique对多维数组的支持,在处理多维数组是需要设置sort_flags参数 一维数组的重复项: 使用array_unique函数即可,使用实例如下: 代码如下 复制代码 <?php $aa = array("apple", "banana", "pear&quo

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' =>

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

二维数组去重

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,将二维数

二维数组与方法(函数)

二维数组 什么是二维? ? 比如(合金弹头.超级玛丽) ? 二维数组里面放一维数组. 什么是二维数组? ? 二维数组本质上是以数组作为数组元素的数组,即“数组的数组”, ? 二维数组又称为矩阵,行列数相等的矩阵称为方阵 怎么创建一个二维数组? 数据类型[][] 对象名 = new 数据类型[x][y]; x代表行 y代表列 例如:  int [ ][ ] a = new int [2] [2]; 数组 : 使用索引来操作元素, 下面给二维数组赋值 a[0] [0] = 1; //第一行第一列 a

树转二维数组的方法

需求如下: let arr = [ { code: "A001", level: 1, childs: [ { code: "A002", level: 2, childs: [ { code: "A005", level: 3, childs: [] }, { code: "A006", level: 3, childs: [] } ] }, { code: "A003", level: 2, child

ThinkPHP的cookide保存二维数组的方法

ThinkPHP中的cookie是不支持二维数组的. 如果要保存二维数组.只能特殊处理 $data[263] = array('gid'=>263,'num'=>1); $data[266] = array('gid'=>266,'num'=>1); $data[267] = array('gid'=>267,'num'=>5); $data = serialize($data); //序列化二维数组 cookie('studyfox_shopping_cart',$d

php二维数组去重

方法一:降维去重         if (!$isPidArrKey) {             //降维去重             $temp = array();             foreach ($tmp as $k => $v) {                 $v      = implode(',', $v);                 $temp[] = $v;             }             $temp = array_unique($t