Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
等价运算符在PHP中如何处理数组?_Php - Fatal编程技术网

等价运算符在PHP中如何处理数组?

等价运算符在PHP中如何处理数组?,php,Php,代码: 这将产生: $arr = array( 10, 20, 30 ); $arr1 = array( 1=>30, 2=>20, 0=>10 ); var_dump( $arr == $arr1 ); $a = array( 1, 2, 3); $b = array( 1=>2, 2=>3, 0=>1 ); var_dump($a == $b); 如果两个数组的对应值

代码:

这将产生:

$arr = array( 10, 20, 30 );
$arr1 = array(
       1=>30,
       2=>20,
       0=>10
);
var_dump( $arr == $arr1 );

$a = array( 1, 2, 3);
$b = array(
       1=>2,
       2=>3,
       0=>1
 );
var_dump($a == $b);

如果两个数组的对应值相同,则认为它们相等

在第一个示例中,您将比较两个阵列:

bool(false)
bool(true)
显然,这两个值不相同,因此返回false。第二个例子是:

[10, 20, 30]
[10, 30, 20]
…都是一样的。我是不是遗漏了什么


如果要测试两个数组是否具有相同的成员,请参见以下问题:


如果您只想看到它们有相同的总数,可以使用如果您不为
数组指定键,php会自动选择数字,从0开始。
因此,以下几对线的含义相同:

[1, 2, 3]
[1, 2, 3]

这是意料之中的

$arr = array(10,20,30);
$arr = array(0=>10,1=>20,2=>30);

$a = array(1,2,3);
$a = array(0=>1,1=>2,2=>3);


这是一个非常广泛的问题,但对于数组来说,它会逐个索引进行比较

在第一个代码块中,$arr不等于$arr1,因为30!=10和10=三十


在第二段代码中,指定索引0处的值为1。索引1的值为2,索引2的值为3。因此,您拥有相同的数组。

鉴于您的一些评论,我认为如果您仔细阅读,将会非常有用。主要是因为没有无键数组。

也不要忘记。

在php和数组中,等式运算符是
==
,是正确的。还有
$arr=$arr1
coz
20=30
30=20
根据您分配的。

看起来像相等运算符,而不是等价运算符…==是等价运算符(通常称为“相等”)。==“身份”(如“相同”)@罗兰:PHP中的相等运算符===i==============================================================================================================如果它是一个身份运算符(==),那么它也应该考虑顺序,在PHP中,没有索引就不能有数组值。你是说(1,2,3)和(3,2,1)是等价的吗?这是一个等价的算符,它应该只考虑值而不是指数,如果它是一个恒等算子(===),那么它就应该考虑顺序。well@jackie在数组值中不存在W/O索引。这是一个等价的算符,它应该只考虑值而不考虑索引,如果它是一个恒等算子(===),那么它就应该考虑顺序。
array(10,20,30) != array(10,30,20)
array(1,2,3) == array(1,2,3)