查找两个数组的交集
你得到两个数组,每个数组有n个元素。您必须找到这两个元素的所有公共元素,而不需要在php中使用任何循环,并打印得到的公共元素数组。
例子
1 2 3 4 5 6 7 8 9 10 11 | Input : array1[] = {3, 5, 2, 7, 9}, array2[] = {4, 3, 2, 7, 8} Output : array ( [0] => 3, [1] => 2, [2] => 7) Input : array1[] = {3, 5, 7}, array2[] = {2, 4, 6} Output : array ( ) |
在C/Java中,我们必须遍历一个数组,对于每个元素,必须检查它是否存在于第二个数组中。但是PHP提供了一个内建函数(array_intersect()),它返回两个数组的公共元素(intersect)。
array_intersect($array1, $array2):返回一个数组,该数组包含array2中所有array1的值。
注意:当array_intersect()返回保留键的数组时,我们将使用array_values(),它将重新排序键。
1 2 3 4 5 6 7 8 | // find intersect of both array $result = array_intersect($array1, $array2); // re-order keys $result = array_values($result); // print resultant array print_r($result); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // declare arrays $array1 = array(2, 5, 7, 6, 9); $array2 = array(3, 2, 5, 6, 8); // find intersect of both array $result = array_intersect($array1, $array2); // re-order keys $result = array_values($result); // print resultant array print_r($result); ?> |
输出
1 2 3 4 5 6 | Array ( [0] => 2 [1] => 5 [2] => 6 ) |