Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.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 我应该使用array_diff_assoc还是==?_Php_Comparison_Equals Operator - Fatal编程技术网

Php 我应该使用array_diff_assoc还是==?

Php 我应该使用array_diff_assoc还是==?,php,comparison,equals-operator,Php,Comparison,Equals Operator,我试图比较两个数组,看看它们是否被排序。 array_diff_assoc与使用===运算符比较两个数组有什么区别? 它们是一样的吗 比如说 $arr_a $arr_b array_diff_assoc($arr_a, $arr_b) 与 $arr_a === $arr_b ?简单的例子告诉我们,这些是不同的方法: $a = ['t' => 2, 'p' => 3]; $b = ['p' => 3, 't' => 2]; var_dump($a === $b); /

我试图比较两个数组,看看它们是否被排序。 array_diff_assoc与使用===运算符比较两个数组有什么区别? 它们是一样的吗

比如说

$arr_a
$arr_b

array_diff_assoc($arr_a, $arr_b)

$arr_a === $arr_b

简单的例子告诉我们,这些是不同的方法:

$a = ['t' => 2, 'p' => 3];
$b = ['p' => 3, 't' => 2];
var_dump($a === $b); // false, arrays are not identical                
var_dump(array_diff_assoc($a, $b));  
// array(0) {} - means that there's no difference between these arrays
// they have same keys with same values, but in different orders 
// and for `===` order is important

简单的例子告诉我们,这些是不同的方法:

$a = ['t' => 2, 'p' => 3];
$b = ['p' => 3, 't' => 2];
var_dump($a === $b); // false, arrays are not identical                
var_dump(array_diff_assoc($a, $b));  
// array(0) {} - means that there's no difference between these arrays
// they have same keys with same values, but in different orders 
// and for `===` order is important

有两个不同之处

array\u diff\u assoc
返回一个数组,该数组包含a中的元素,但在b中找不到

$a = [ 1 => 'first' , 2 , 3];
$b = [ 1 => 'first' , 2 , 4 , 3];
var_dump(array_diff_assoc($a,$b) // [ 3 => 3 ] because in a element 3 key is 3 and in b element 3 is 4. 
另外,
array\u diff\u assoc
不适用于多维数组。有关更多信息,请访问文档

$a===$b
除了元素的顺序之外,还基于键/值对比较返回true或false,并且可以使用多维数组。因此,如果你需要一个正确或错误的比较,请使用

$a === $b // if order and type is important 
$a == $b  // if order and type are not important
1 === '1' // false 
1 == '1'  //true

有关更多信息,请访问文档

有两个不同之处

array\u diff\u assoc
返回一个数组,该数组包含a中的元素,但在b中找不到

$a = [ 1 => 'first' , 2 , 3];
$b = [ 1 => 'first' , 2 , 4 , 3];
var_dump(array_diff_assoc($a,$b) // [ 3 => 3 ] because in a element 3 key is 3 and in b element 3 is 4. 
另外,
array\u diff\u assoc
不适用于多维数组。有关更多信息,请访问文档

$a===$b
除了元素的顺序之外,还基于键/值对比较返回true或false,并且可以使用多维数组。因此,如果你需要一个正确或错误的比较,请使用

$a === $b // if order and type is important 
$a == $b  // if order and type are not important
1 === '1' // false 
1 == '1'  //true

有关更多信息,请访问文档

还应说明
array\u diff\u assoc()
将进行字符串比较。这进一步强化了早期的见解,即这些技术绝对不同

只有当(字符串)$elem1==(字符串)$elem2时,键=>值对中的两个值才被视为相等。换句话说,会进行严格检查,因此字符串表示形式必须相同

代码:()

输出:

array (
  2 => NULL,
  3 => 0,
)
---
array (
)
---
false

还应该说明,
array\u diff\u assoc()
将进行字符串比较。这进一步强化了早期的见解,即这些技术绝对不同

只有当(字符串)$elem1==(字符串)$elem2时,键=>值对中的两个值才被视为相等。换句话说,会进行严格检查,因此字符串表示形式必须相同

代码:()

输出:

array (
  2 => NULL,
  3 => 0,
)
---
array (
)
---
false