我如何比较2个阵列在PHP中发现哪些值每个阵列有共同之处。
例子是
阵列1
Array
(
[0] => ace
[1] => one
[2] => five
[3] => nine
[4] => elephant
)
阵列2
Array
(
[0] => elephant
[1] => seven
[2] => ace
[3] => jack
[4] => queen
)
输出阵列([0] => ACE [1] =>象)
array_intersect功能可以做到这一点。
PHP有一个array_intersect()可以做到这一点的功能。 作为一个例子,YPO可以把下面的代码PHPFiddle来进行测试:
<?php
$array1 = array('ace', 'one', 'five', 'nine', 'elephant');
$array2 = array('elephant', 'seven', 'ace', 'jack', 'queen');
print_r($array1); print('<br>');
print_r($array2); print('<br>');
print_r(array_intersect($array1, $array2)); print('<br>');
?>
然后你就会看到它给你想要的东西(重新格式化为可读性):
Array ( [0] => ace
[1] => one
[2] => five
[3] => nine
[4] => elephant )
Array ( [0] => elephant
[1] => seven
[2] => ace
[3] => jack
[4] => queen )
Array ( [0] => ace
[4] => elephant )
请注意,这实际上并没有给你结果连续按键,按键似乎来自给第一阵列array_intersect()
。 如果你得到一个连续索引的数组是很重要的,你可能需要一个后处理步骤进行调整。 像这样的东西应该是一个良好的开端(修改原来的小提琴使用连续索引):
<?php
$array1 = array('ace', 'one', 'five', 'nine', 'elephant');
$array2 = array('elephant', 'seven', 'ace', 'jack', 'queen');
print_r($array1); print('<br>');
print_r($array2); print('<br>');
$array3 = array();
foreach (array_intersect($array1, $array2) as $val) {
array_push($array3, $val);
}
print_r($array3); print('<br>');
?>
如果你在那里是没有内置路口的语言,但你有哈希,你只需要添加一个阵列中的所有元素到散,然后再通过第二个阵列检查,看看他们是否在哈希你刚刚建立起来的。
这是所有的,如果你不关心顺序。 如果你关心顺序,它只是一个for循环看,如果[I] == B [I]