知优码

您现在的位置是:首页 > Php语言 > php基础

php基础

如何在php中比较数组是否相等

2020-04-27php基础
php中数组的使用是非常灵活多变的。同时数组本身也是很灵活的。在运算中我们可以对数组进行宽松比较(==)、严格比较(===)运算。

php数组的比较
php中数组的使用是非常灵活多变的。同时数组本身也是很灵活的。在运算中我们可以对数组进行宽松比较(==)、严格比较(===)运算。
在这之间我们先回顾一下php中数组的构成元素。

一、数组的构成

数组中的元素是由键(key)和值(value)构成的,我们称之为键值对。数组中对值(value)的访问是通过键名获取的。
数组键的数据类型

  1. 整数型
  2. 字符串型

数组值的数据类型:任意类型

二、数组元素的顺序

数组中的元素是有顺序的,数组的遍历是按定义或插入时候的顺序,从前往后遍历的。

三、数组的三要素

  1. 键(key)的数据类型及值
  2. 值(value)的数据类型及值
  3. 键值对的顺序

四、数组的比较

现在就是总结,宽松比较(==)、严格比较(===)运算的规则。

宽松比较(==):    如果 $a 和 $b 具有相同的键,对数组的值(value)进行宽松比较,如果相等为true,不管数组元素的顺序。

$a == $b	//相等

严格比较(===):如果 $a 和 $b 具有相同的键,对数组的值(value)进行严格比较,如果相等,并且数组元素的顺序一样,结果为true。

$a === $b	//全等

需要注意数组的宽松比较和严格比较,指的是对数组中的值(value)进行宽松比较和严格比较。如果他们有不同的键结果直接为false。

五、示例

下面的例子可以更深入的理解php中数组的比较运算

<?php
//相同的键值对和顺序
$x=["name"=>"zhangsan","age"=>18];
$y=["name"=>"zhangsan","age"=>18];
var_dump($x==$y);//true 宽松比较
var_dump($x===$y);//true 严格比较

//相同的键值对和顺序不同
$x=["age"=>18,"name"=>"zhangsan"];
$y=["name"=>"zhangsan","age"=>18];
var_dump($x==$y);//true 宽松比较
var_dump($x===$y);//false 严格比较

//不同的键值对
$x=["name"=>"zhangsan","age"=>18,"height"=>182];
$y=["name"=>"zhangsan","age"=>18];
var_dump($x==$y);//false 宽松比较
var_dump($x===$y);//false 严格比较

//相同的键,不同的值
$x=["name"=>"zhangsan","age"=>18];
$y=["name"=>"zhangsan","age"=>"18"];
var_dump($x==$y);//true 宽松比较
var_dump($x===$y);//false 严格比较 ,age的数据类型不一致,x是数字,y是字符串