等价运算符在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
coz20=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)