PHP:两个数组之间的不同元素

问题描述 投票:0回答:2

我有两个这样的不同数组

 $array1 = [1, 2, 8, 10];
 $array2 = [2, 4, 6, 8, 10, 15, 1];

我想获得它们之间的共同点和共同点。我几乎想出了如何将常见代码作为下面的代码,但我不能得到不常见的元素。

for($x = 0; $x < count($array1); $x++) {

    for($z = 0; $z < count($array2); $z++) {
            if ( $array1[$x] == $array2[$z] ) {

                $array3 = $array1[$x];
                print_r($array3);

            } elseif ($array1[$x] !== $array2[$z]) {
                // code...
            }

        }
    }

如何在不使用内置PHP方法的情况下获得两个数组之间不常见或不同的元素,然后将其输出到新数组中。

php
2个回答
0
投票

使用此代码:

$common = [];
$uncommon = [];

foreach ($array1 as $value) {
    if (in_array($value, $array2)) {
        $common[] = $value;
        unset($array2[$value]);
    } else {
        $uncommon[] = $value;
    }
}

$uncommon = array_merge($uncommon, $array2);

0
投票

您可以使用in_array()功能获得不常见的元素

<?php
 $array1 = [1, 2, 8, 10];
 $array2 = [2, 4, 6, 8, 10, 15, 1];

  $result = []; 
 for($i = 0;$i < sizeof($array2);$i++){
 if(!in_array($array2[$i],$array1)){
    $result[] =  $array2[$i];
  }
 }
?>

输出

Array
(
    [0] => 4
    [1] => 6
    [2] => 15
)
© www.soinside.com 2019 - 2024. All rights reserved.