Проверьте разницу между двумя массивами без какой-либо функции - PullRequest
0 голосов
/ 21 марта 2019
$array1=[1,2,3,4,5,6];
$array2=[1,2,3,5,6,7,8,9,10];

Я хочу разницу между этими двумя массивами без использования какой-либо функции, такой как array_diff или т. Д.

Ответы [ 2 ]

1 голос
/ 21 марта 2019

Очевидно, что я не собираюсь отвечать на это домашнее задание / собеседование с дампом кода, но с общим (и утомительным) подходом:

  • foreach по обоим спискам ($array1 as $x1 / $array2 as $x2).

  • Сохранить флаг состояния $found = false;

  • Если внутренний foreach находит$x1 == $x2, затем установите $found

  • И после внутреннего цикла соберите $x1 в списке разностей (if (!$found)).

0 голосов
/ 21 марта 2019
   $diffArray=array();

   foreach($array1 as $value){ 
      if(!in_array($value,$array2)
         $diffArray[$value] = $value;
    }

   foreach($array2 as $value){ 
      if(!in_array($value,$array1)
         $diffArray[$value] = $value;
    }

Перебирайте массивы отдельно, одну за другой, поместите разницу в массив KEY, чтобы избежать повторения.В первом цикле будут выбраны элементы, которые находятся в массиве 1, но не в массиве 2, а во втором цикле все наоборот.

...