删除数组与二维数组值的php代码


方法如下:

  1. $arr = array(…………) ;//假设有一万个元素的数组,里面有重复的元素。
  2. $arr = array_flip(array_flip($arr)); //这样便可以删除重复元素。

究竟是怎么回事呢?来看下array_flip()的作用:array_flip()用于将一个数组的每个元素的键和值交换,如:

  1. $arr1 = array (”age” => 30, “name” => “快乐园”);
  2. $arr2 = array_flip($arr1); //$arr2 就是 array(30 => “age”, “快乐园” => “name”);

在php的数组中,允许不同的元素可以取同一个值,但不允许同一个键名被不同的元素使用,如:

  1. $arr1 = array (”age” => 30, “name” => “快乐园”, “age” => 20); “age” => 20将会取代”age” => 30
  2. $arr1 = array (”name” => “快乐园”, “age” => 45);

这里 $arr1与$arr2是相等的,于是,我们便可以知道,为什么array_flip(array_flip($arr))可以删除数组中重复的元素了,首先,$arr里的值会变成键名,因为值是有重复的,变成键名之后这些重复的值便成了重复的键名,php引擎将重复的键名删除,只保留最后一个。如:

  1. $arr1 = array (”age” => 30, “name” => “快乐园”, “age” => 20);
  2. $arr1 = array_flip($arr1); //$arr1 变成了 array(”快乐园” => “name”, 20 => “age”);
  3. //再把 $arr1 的键名与值还复:
  4. $arr1 = array_flip($arr1);

上面的代码写得简洁一些就是:$arr1 = array_flip(array_flip($arr1));

5月6日能否击破3000点【新人炒股入门知识】:http://licai.daiyuline.com/gupiao/359.html

非农夜 谁主油市沉浮【国际原油价格】:http://licai.daiyuline.com/yyjg/358.html

非农快报 黄金今夜何去何从【黄金价格走势】:http://licai.daiyuline.com/guijinshu/357.html

时间: 2024-11-05 19:35:55

删除数组与二维数组值的php代码的相关文章

java数组(一维数组,二维数组)

数组初始化: 1,动态初始化:数组定义与为数组分配空间和赋值的操作分开进行 2,静态初始化:在定义数组的同时就为数组元素分配空间并赋值 3,默认初始化:数组是引用类型,它的元素相当于类的成员变量,因此,数组分配空间之后 每个元素也被按照成员的规则被隐士的初始化值 ------------------------------------------------. 一维数组: package day06; import java.util.Date; /*** * 数组演示 * 数组的声明: * t

C#一维数组,二维数组,多维数组

所谓的数组,就是相同数据类型的元素的元素按一定顺数排列的集合,就是把有限个类型相同的变量用一名字命名,然后用编号区分他们的变量的集合,这个名字成为数组名,编号称为下标.组成数组的各个变量成为数组的分量,也称为数组的元素,有时也称为下标变量,数组是在程序设计中,为了处理方便,把具有相同类型的若干变量按有序的形式组织起来的一种形式.这些按序排列的同类数据元素的集合成为数组. 数组又分为一维数组,二维数组,多维数组 一维数组用一个整数来索引,多维数组用两个或多个整数来索引. 一.数据类型[] 变量名

一维数组,二维数组,三维数组,数组与指针,结构体数组,通过改变指针类型改变访问数组的方式

 打印数组中的每个元素,打印每个元素的地址: #include <stdio.h> #include <stdlib.h> void main(void) { int a[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }; for (int *p = a; p < a + 10;p++)  //指针类型决定4个字节 { printf("\n%p,%d", p, *p); } getchar(); } 指针数组 #inclu

C# 数组、一维数组、二维数组、多维数组、锯齿数组

C#  数组.一维数组.二维数组.多维数组.锯齿数组 一.数组: 如果需要使用同一类型的对象,就可以使用数组,数组是一种数据结构,它可以包含同一类型的多个元素.它的长度是固定的,如长度未知的情况下,请使用集合. 二.一维数组: 声明及初始化: class Program { static void Main(string[] args) { //方法一 int[] num = new int[3];//声明一个长度为3的值类型的数组: num[0] = 3;//为数组赋值: num[1] = 5

java基础中的一维数组和二维数组

1.数组:具有相同数据类型的一组数据的集合. 一维数组 2.创建一维数组 a.数组作为对象允许使用new关键字进行内存分配,使用数组之前,必须首先定义数组变量所属类型,即声明数组.  声明数组: 语法:数组元素类型   数组名字[]; 数组元素类型[]  数组名字: 注释:数组元素类型:决定了数组的数据类型,包括基本数据类型和费基本数据类型. 数组名字:为一个合法的标识符,自己去定义 []:指明该变量是一个数组类型变量,单个"[]"表示要创建的是一维数组. 例如:int arr[];

指针数组和二维数组指针变量

指针数组 概念: 一个数组的元素值为指针则是指针数组. 指针数组是一组有序的指针的集合. 指针数组的所有元素都必须是具有相同存储类型和指向相同数据类型的指针变量. 指针数组说明的一般形式为: 类型说明符 *数组名[数组长度] 其中类型说明符为指针值所指向的变量的类型. 例如: int *pa[3] 表示pa是一个指针数组,它有三个数组元素,每个元素值都是一个指针,指向整型变量. 1.用一个指针数组来指向一个二维数组. 指针数组中的每个元素被赋予二维数组每一行的首地址,因此也可理解为指向一个一维数

7、一维数组和二维数组耳朵创建,输出,Arrays.fill()替换

package com.xxx.xxx; import java.util.Arrays; public class demo8 { /** * 1.初始化一维数组 使用一维数组 * 2.初始化二维数组 使用二维数组 * 3.填充替换数组元素 * @param args */ public static void main(String[] args) { //1.第一种初始化方式 int arr[] = new int[]{1,2,3,4,5,6}; //一维数组 //1.1.第二种初始化方式

【C语言探索之一】二维数组,二维数组名的意义

1.一维数组 一维数组名,代表两个(1)代表整个数组(虽然谭老爷子的书上说不能,但是只是那个情境下) (2)代表首地址 2.二维数组 想到二维数组在指针方面的理解很是麻烦,所以我自己想了一种理解方式,如下图所示 二维数组名的意义感觉很难受,所以自己来探索下其代表些什么 下面是我的代码和结果 可以看到他们四个的值是一模一样的,但是意义不一样的 1.b数组名,他是指向整个数组的指针, 2.*b是数组第一维的首地址,相当于b[0] 3.&b目的是为了看出数组名的地址,最后结果显而易见,他的地址也是这个

JAVA描述算法和数据结构(01):稀疏数组和二维数组转换

一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵.定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度. 2.处理方式 1).记录数组一共有几行几列,有多少个不同的值 2).把具有不同值的元素的行列及值记录在稀疏数组中,可以缩小程序代码的复杂度. 3.图解描述 稀疏数组表示 [0] 3 4 4 二维数组,3行,4列,4个非0的值: [1] 1 2 2 一行

JAVA描述算法和结构(01):稀疏数组和二维数组转换

本文源码:GitHub·点这里 || GitEE·点这里 一.基本简介 1.基础概念 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵:与之相反,若非0元素数目占大多数时,则称该矩阵为稠密矩阵.定义非零元素的总数比上矩阵所有元素的总数为矩阵的稠密度. 2.处理方式 1).记录数组一共有几行几列,有多少个不同的值 2).把具有不同值的元素的行列及值记录在稀疏数组中,可以缩小程序代码的复杂度. 3.图解描述 稀疏数组表示 [0] 3 4 4 二维