在不使用任何PHP本地函数的情况下,创建一个包含两个数组不匹配值的新数组


Create a new array which have non matching values of two arrays without using any native function of PHP

我有两个数组

$array1 = array('A','T','L','H','K','L');
$array2 = array('T','L');

我想要一个像

这样的新数组
$array3 = array('A','H','K');

不使用数组函数。

    function uniqueArray($array1,$array2) {
        $result = array();
        foreach($array1 as $val1) { //Array1 - Array2
            $flag = 0;
            foreach($array2 as $val2) {
              if($val1 == $val2){
                  $flag = 1;
                  break;
              }
            }
            if($flag == 0) {
                $result[] = $val1;
            }
        }
        foreach($array2 as $val1) { //Array2 - Array1
            $flag = 0;
            foreach($array1 as $val2) {
              if($val1 == $val2){
                  $flag = 1;
                  break;
              }
            }
            if($flag == 0) {
                $result[] = $val1;
            }
        }
        return $result;
    }

首先合并两个数组以遍历所有项。

然后循环遍历合并的数组,如果两个原始数组都不包含该项,则将该项添加到results数组中。

function get_all_items_not_shared_by_both_arrays($array1, $array2) {
    $merged_array = array_merge($array1,$array2);
    $result_array = array();
    foreach ($merged_array as $item) {
        if ( !(in_array($item,$array1) && in_array($item,$array2)) ) {
            $result_array[] = $item;
        }
    }
    return $result_array;
}

不使用任何预定义的数组函数:

$array1 = array('A','T','L','H','K','L');
$array2 = array('T','L');
$array3=array();
foreach($array1 as $val1) {
   $isExists=false;
   foreach($array2 as $val2) {
       if($val2 == $val1){
          $isExists=true;
          break;
       }      
   }
   if(!$isExists)
     $array3[]=$val1;   
}
print_r($array3);

解释:

查找数组1中的元素在数组2中不存在,然后将元素添加到数组3中,并重复此过程查找数组的最后一个元素