php - array_diff_assoc 文档代码的意外结果
问题描述
在此示例中,您会看到这
"a" => "green"
对存在于两个数组中,因此它不在函数的输出中。与此不同的0 => "red"
是,该对在输出中,因为在第二个参数"red"
中,键是1
.<?php $array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red"); $array2 = array("a" => "green", "yellow", "red"); $result = array_diff_assoc($array1, $array2); print_r($result); ?>
上面的示例将输出:
Array ( [b] => brown [c] => blue [0] => red )
red
存在于两个数组中,但它在 的输出中返回array_diff_assoc
,为什么 PHP认为在和red
中是不同的?$array1
$array2
解决方案
这是因为在第一个数组中红色的索引是 0,而在第二个数组中红色的索引是 1,所以它们是不同的。
从文档:
通过附加索引检查计算数组的差异
<?php
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
var_dump($array1);
var_dump($array2);
输出:
array(4) {
["a"]=>
string(5) "green"
["b"]=>
string(5) "brown"
["c"]=>
string(4) "blue"
[0]=>
string(3) "red"
}
array(3) {
["a"]=>
string(5) "green"
[0]=>
string(6) "yellow"
[1]=>
string(3) "red"
}
推荐阅读
- java - 与 Ignite 集群建立客户端连接导致服务器上出现 OutOfMemoryError
- javascript - Firefox 不断更新 React 状态,尽管输入没有改变
- c - 指向空函数的指针
- visual-studio - 错误:无法解析“package:cloud_firestore/cloud_firestore.dart”中的“cloud_firestore”包。飘飘然
- javascript - 如何从加载项 [任务窗格或其他] 在 Outlook 中保存文件?
- mysql - Mysql Left join 避免重复表
- python - Beautifulsoup:如何从列表中获取某些链接?
- arrays - 如何禁止json模式数组中的某些anyOf项目多次出现
- excel - excel VBA,在将多个CSV文件复制到一个工作簿时,在单元格中创建一个带有工作表或文件名的列
- python - 如果等于字符串,Python替换数据框值