169it科技资讯


当前位置:  编程技术>php

php数组去重(一维、二维数组去重)的简单示例

    来源: 互联网  发布时间:2014-10-13

本节内容:
php一维数组、二维数组去重的代码。

在php编程中,数组的应用是相当广泛的,无论是导航菜单的生成,还是一些需要排序的地方,以及一些配置信息的存储,都离不开php数组的身影。

这里为大家介绍php一维数组、二维数组去除重复项的方法,希望对大家有所帮助。

一,PHP一维数组去除重复项(使用array_unique函数)。
例1,代码:
 

代码示例:
<?php
 $aa=array("apple","banana","pear","apple","wail","watermalon");
  $bb=array_unique($aa);
   print_r($bb);
?>

输出结果:
Array ( [0] => apple [1] => banana [2] => pear [4] => wail [5] => watermalon ) 。

二,PHP二维数组的重复项:
对于二维数组咱们分两种情况讨论,一种是因为某一键名的值不能重复,删除重复项;
另一种因为内部的一维数组不能完全相同,而删除重复项。

例1,因为某一键名的值不能重复,删除重复项。
代码:
 

代码示例:
<?php
  function assoc_unique($arr, $key)
   {
     $tmp_arr = array();
     foreach($arr as $k => $v)
    {
       if(in_array($v[$key], $tmp_arr))//搜索$v[$key]是否在$tmp_arr数组中存在,若存在返回true
      { // www.
         unset($arr[$k]);
      }
    else {
        $tmp_arr[] = $v[$key];
      }
    }
  sort($arr); //sort函数对数组进行排序
  return $arr;
  }
  $aa = array(
  array('id' => 123, 'name' => '张三'),
  array('id' => 123, 'name' => '李四'),
  array('id' => 124, 'name' => '王五'),
  array('id' => 125, 'name' => '赵六'),
  array('id' => 126, 'name' => '赵六')
  );
  $key = 'id';
  assoc_unique(&$aa, $key);
  print_r($aa);
  ?>
 

输出结果:Array ( [0] => Array ( [id] => 123 [name] => 张三 ) [1] => Array ( [id] => 124 [name] => 王五 ) [2] => Array ( [id] => 125 [name] => 赵六 )
[3] => Array ( [id] => 126 [name] => 赵六 ) )
 
例2,因内部的一维数组不能完全相同,而删除重复项。
代码:
 

代码示例:
<?php
  function array_unique_fb($array2D){
       foreach ($array2D as $v){
           $v = join(",",$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
           $temp[] = $v;
       } // www.
       $temp = array_unique($temp);    //去掉重复的字符串,也就是重复的一维数组
      foreach ($temp as $k => $v){
          $temp[$k] = explode(",",$v);   //再将拆开的数组重新组装
      }
      return $temp;
  }
  $aa = array(
  array('id' => 123, 'name' => '张三'),
  array('id' => 123, 'name' => '李四'),
  array('id' => 124, 'name' => '王五'),
  array('id' => 123, 'name' => '李四'),
  array('id' => 126, 'name' => '赵六')
  );
  $bb=array_unique_fb($aa);
  print_r($bb)
  ?>

输出结果:
 

Array ( [0] => Array ( [0] => 123 [1] => 张三 ) [1] => Array ( [0] => 123 [1] => 李四 ) [2] => Array ( [0] => 124 [1] => 王五 ) [4] => Array ( [0] =>
126 [1] => 赵六 ) ) 

您可能感兴趣的文章:
php去除数组中重复数据的二个例子
PHP二维数组去重的实例解析
php数组去重的函数代码示例
php 数组去重的方法参考(一维数组去重、二维数组去重)
一个去除二维数组中重复项的php函数
php判断与去除数组中重复数据的方法
去掉二维数组中的重复组合的实现代码
php 二维数组去重的自定义函数
php array_unique 一维数组去除重复值的例子
php数组去重的小例子


    
相关技术文章:
    ▪php小数点后取两位的三种实现方法

     本节内容: php小数点后取两位的方法。 方法一、经常用到小数点后取几位,但不能进位的情况。 比如3.149569取小数点后两位,最后两位不能四舍五入。结果:3.14。 可以使用函数floor。 该函数是舍去取整。例如,floor(4.66456) 结果:4 。 floor(9.1254) 结果9 。 因此,去小数点后两位,需要先乘以100,然后舍去取整,再除以100,即: $a=floor(3.149569*100)/100 计算百分数:   代码示例: $successRate = floor((2/3'])*10000)/10000*100; $result = $successRate.'%';   输出结果: 66.67% ......


    ▪php Redis 队列服务的简单示例

     本节内容: php调用redis提供队列服务。 例1,入队操作文件(enqueue.php):   代码示例: <?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); while (true) {     $redis->lPush('list1', 'A_'.date('Y-m-d H:i:s'));     sleep(rand() % 3); } ?>   执行:php enqueue.php & 例2,出队操作文件(dequeue.php):   代码示例: <?php $redis = new Redis(); $redis->pconnect('127.0.0.1', 6379); while(true) {     try     {         var_dum......


    ▪PHP导出excel时数字变为科学计数的解决方法

     本节内容: 解决php导出excel时数字变成了科学计数格式的问题。 问题描述: 导出数据到excel时数字格式不对,一般有如下的两种情况。 1、excel单元格设置长度不够。 解决方法:   代码示例: <?php //在excel.php文件中  $objActSheet = $objPHPExcel->getActiveSheet();  // 设置 栏目名称  $objActSheet->setCellValue("b1", "卡号");  // 设置列的宽度  $objActSheet->getColumnDimension('b')->setWidth(20);//改变此处设置的长度数值  2、字符被excel理解成数字 解决方法: 把那......


 
最新技术文章:
    ▪PHP函数microtime()时间戳的定义与用法

     本节内容: PHP函数microtime() 定义和用法 microtime()返回当前 Unix 时间戳和微秒数。 microtime()语法 microtime(get_as_float) microtime()参数与描述 get_as_float 如果给出了 get_as_float 参数并且其值等价于 TRUE,该函数将返回一个浮点数。 说明 microtime()仅在支持 gettimeofday() 系统调用的操作系统下可用。 如果调用时不带可选参数,本函数以 "msec sec" 的格式返回一个字符串,其中 sec 是自 Unix 纪元(0:00:00 January 1, 1970 GMT)起到现在的秒数,msec 是微秒部分。字符串的两部分都是以秒为单位返回的。 例子:   代码示例......


    ▪PHP单一入口之apache配置内容

     本节内容: PHP单一入口 在apache配置文件httpd.conf加入,去掉LoadModule rewrite_module modules/mod_rewrite.so前面的“#”号。 内容:   代码示例: DocumentRoot / <Directory />     Options Indexes FollowSymLinks MultiViews     AllowOverride None     #AllowOverride All <IfModule mod_rewrite.c>   RewriteEngine on   RewriteBase /   #不显示index.php   RewriteCond %{REQUEST_FILENAME} !-d   RewriteCond %{REQUEST_FILENAME} !-f   RewriteRule  ^/?(.*)$ /index.php?%{QUERY_STRING} [L,NC]   #RewriteRule ^(.*)$ index.php?$1 [QSA,L]  </IfM......


    ▪PHP数组排序方法总结(收藏)

     本节内容: 快速创建数组的函数range()和常见PHP数组排序的方法。   本文主要介绍php数组排序、降序的排序相关的内容。   sort:本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。 rsort:本函数对数组进行逆向排序(最高到最低)。 删除原有的键名而不仅是重新排序。 asort:对数组进行排序并保持索引关系 arsort:对数组进行逆向排序并保持索引关系 ksort:对数组按照键名排序,保留键名到数据的关联 krsort:对数组按照键名逆向排序,保留键名到数据的关联 natsort:对字母数字......


 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2017,169IT.COM,E-mail:www_169it_com#163.com(请将#改为@)

浙ICP备11055608号