【发布时间】:2014-01-28 15:40:35
【问题描述】:
这是一个使用 array_intersect_uassoc() 的示例。
我故意将键设置为不同的,这样你就可以分辨出哪个来自哪个数组。
$array1 = array("LEFT a" => "green", "LEFT b" => "brown", "LEFT c" => "blue"); $array2 = array("RIGHT a" => "GREEN", "RIGHT B" => "brown", 'RIGHT y' => "yellow"); array_intersect_uassoc($array1, $array2, 函数($a, $b) { print_r("$a -- $b"); 返回0; });在输出中,我看到了两个 LEFT 键和两个 RIGHT 键的比较。
这样做到底有什么意义?
【问题讨论】:
-
因为如果
LEFT a == LEFT b,您只需要检查== RIGHT a是否其中之一,而不是两者。节省时间/是为了效率。现在有点,但在更大的阵列上,这可以加起来。 -
但它们是数组键,因此根据定义,一个数组中的任何键都不能相等。它们是 无关紧要,因为我们不是在排序,而是在过滤。