Php 比较两个数组的相似性

Php 比较两个数组的相似性,php,arrays,compare,Php,Arrays,Compare,我如何比较PHP中的两个数组以找出每个数组的共同值 例如 阵列1 Array ( [0] => ace [1] => one [2] => five [3] => nine [4] => elephant ) 阵列2 Array ( [0] => elephant [1] => seven [2] => ace [3] => jack [4] => que

我如何比较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] =>大象
)

函数可以做到这一点。

如果您使用的语言中没有内置交叉点,但有哈希,则只需将一个数组的所有元素添加到哈希中,然后执行第二个数组检查,以查看它们是否在刚刚构建的哈希中

如果你不在乎秩序,这就是一切。如果您关心顺序,那么这只是一个for循环,看看a[i]==b[i]

PHP是否有一个函数可以实现这一点。例如,ypo可以将以下代码放入测试中:

<?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\u intersect()
的第一个数组。如果获得连续索引数组很重要,则可能需要一个后处理步骤来调整它。类似的内容应该是一个良好的开端(修改原始fiddle以使用连续索引):


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 ) 
<?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>');
?>