我从php.net示例
运行此代码<?php
$array1 = array(0, 1, 2);
$array2 = array("00", "01", "2");
$result = array_diff_assoc($array1, $array2);
print_r($result);
?>
我得到的输出:
Array
(
[0] => 0
[1] => 1
)
php.net说:来自key =&gt;的两个值值对被认为是等于仅当(字符串)$ elem1 ===(字符串)$ elem2。
而在示例中,它考虑2 ===&#34; 2&#34;。
这是怎么回事?请解释一下?
可能是这种情况
如果$ ele1将整数转换为字符串,即2到&#34; 2&#34;,那么为什么它与===运算符进行比较。可能有2 ==&#34; 2&#34;更好的选择,我们不需要把它变成字符串。如果我错了,请纠正我?
答案 0 :(得分:0)
如果$ ele1将整数转换为字符串,即2转换为“2”,那么为什么它与===运算符进行比较。可能有2 ==“2”更好的选项,我们不需要将其转换为字符串。如果我错了,请纠正我?这就是它实施的方式 如果您想要另一个比较函数,请使用array_diff_uassoc()