Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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 数组_diff_assoc()正在考虑1==";1“;_Php_Arrays - Fatal编程技术网

Php 数组_diff_assoc()正在考虑1==";1“;

Php 数组_diff_assoc()正在考虑1==";1“;,php,arrays,Php,Arrays,我从php.net示例运行此代码 <?php $array1 = array(0, 1, 2); $array2 = array("00", "01", "2"); $result = array_diff_assoc($array1, $array2); print_r($result); ?> php.net说:只有当(string)$elem1==(string)$elem2时,key=>value对中的两个值才被认为相等。 而在本例中,它考虑2==“2” 这是怎么发生的?请

我从php.net示例运行此代码

<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
php.net说:只有当(string)$elem1==(string)$elem2时,key=>value对中的两个值才被认为相等。

而在本例中,它考虑2==“2”

这是怎么发生的?请解释一下

可能是这样的

如果$ele1将整数转换为字符串,即2到“2”,那么为什么它与===运算符进行比较。可能有2==“2”更好的选项,我们不需要将其转换为字符串。如果我错了,请纠正我?

如果$ele1将整数转换为字符串,即2到“2”,那么为什么它与===运算符进行比较。可能有2==“2”更好的选项,我们不需要将其转换为字符串。如果我错了,请纠正我?这只是它的实现方式。
如果需要另一个比较函数,请使用

如果$ele1正在将整数转换为字符串,即2转换为“2”,那么为什么它要与===运算符进行比较。可能有2==“2”更好的选项,我们不需要将其转换为字符串。如果我错了,请纠正我?这只是它的实现方式。

如果需要另一个比较函数,请使用

它不会执行类型严格的比较。就像
array_diff
一样,它只比较严格的相等。请参见:
两个元素当且仅当(string)$elem1==(string)$elem2时被视为相等。
只是为了澄清:当array_diff_assoc()比较元素
2
(整数:2)和
“2”
(字符串:2)时整数被转换为字符串,该字符串为==
“2”
;因此,两个元素(整数和字符串)被认为是相等的。它不考虑<代码> 2===“2”< /代码>,它考虑“代码>”2”==“2”< /代码>,因为非字符串元素正在被转换为字符串。这就是
(string)$elem1
2
所做的,将其转换为字符串
“2”
它不会进行严格的类型比较。就像
array_diff
一样,它只比较严格的相等。请参见:
两个元素当且仅当(string)$elem1==(string)$elem2时被视为相等。
只是为了澄清:当array_diff_assoc()比较元素
2
(整数:2)和
“2”
(字符串:2)时整数被转换为字符串,该字符串为==
“2”
;因此,两个元素(整数和字符串)被认为是相等的。它不考虑<代码> 2===“2”< /代码>,它考虑“代码>”2”==“2”< /代码>,因为非字符串元素正在被转换为字符串。这就是
(string)$elem1对
2
所做的,将其转换为字符串
“2”
Array
(
    [0] => 0
    [1] => 1
)