1 Востаннє редагувалося ostap34PHP (11.02.2018 15:43:54)

Тема: Алгоритм порівняння масивів

Привіт люди!   *YES*
Мені необхідно порівняти всі масиви, і виділити ті елементи, які є у всіх масивах.
Не можу зрозуміти, як порівнювати, чи з першого масиву до всіх інших, чи як...

$page1      = getPage($url1);
$page2      = getPage($url2);
$page3      = getPage($url3);
$page4      = getPage($url4);
$page5      = getPage($url5);
$page6      = getPage($url6);
$page7      = getPage($url7);

Знайшов функціюю array_intersect - вона порівнює масиви і виділяє спільні елементи.Але як бути, якщо масивів кілька?

Буду вдячний...

2

Re: Алгоритм порівняння масивів

Будь ласка, якщо ви знайшли функцію, то знайдіть ще й офіційну документацію по тій функції.

Подякували: NaharD, ostap34PHP2

3

Re: Алгоритм порівняння масивів

Грубий варіант.. робіть in_array() перевірку значень масиву для всіх масивів.
Код писати лінь.

Подякували: ostap34PHP1

4

Re: Алгоритм порівняння масивів

Дійшов до висновку:
зрівнювати треба один масив з усіма.

$page1      = getPage($url1);
$page2      = getPage($url2);
$page3      = getPage($url3);
$page4      = getPage($url4);
$page5      = getPage($url5);
$page6      = getPage($url6);
$page7      = getPage($url7);

$id = 0;
//починаємо пошук
foreach($page1 as $item){
    ++$id;
    if(!in_array($item, $page3)){
        array_splice($start_page, $id, 1);
    }
    if(!in_array($item, $page4)){
        array_splice($start_page, $id, 1);
    }
    if(!in_array($item, $page5)){
        array_splice($start_page, $id, 1);
    }
    if(!in_array($item, $page6)){
        array_splice($start_page, $id, 1);
    }
    if(!in_array($item, $page7)){
        array_splice($start_page, $id, 1);
    }
}
//виводимо елементи що залишились
foreach($start_page as $item){
    echo $item.'<br>';
}

5 Востаннє редагувалося ostap34PHP (11.02.2018 15:08:57)

Re: Алгоритм порівняння масивів

Замовник запропонував свій спосіб

обережно, очі!
//берем дані із сторінок
$page1      = getPage($url1);
$page2      = getPage($url2);
$page3      = getPage($url3);
$page4      = getPage($url4);
$page5      = getPage($url5);
$page6      = getPage($url6);
$page7      = getPage($url7);

$id = 0;

//1*2,1*3,1*4*,1*5,1*6,1*7,
$arr1 = array_intersect($page1,$page2);
$arr2 = array_intersect($page1,$page3);
$arr3 = array_intersect($page1,$page4);
$arr4 = array_intersect($page1,$page5);
$arr5 = array_intersect($page1,$page6);
$arr6 = array_intersect($page1,$page7);
//2*3,2*4,2*5,2*6,2*7
$arr7 = array_intersect($page2,$page3);
$arr8 = array_intersect($page2,$page4);
$arr9 = array_intersect($page2,$page5);
$arr10 = array_intersect($page2,$page6);
$arr11 = array_intersect($page2,$page7);
// 3*4,3*5,3*6,3*7
$arr12 = array_intersect($page3,$page4);
$arr13 = array_intersect($page3,$page5);
$arr14 = array_intersect($page3,$page6);
$arr15 = array_intersect($page3,$page7);
//4*5,4*6,4*7,
$arr16 = array_intersect($page4,$page5);
$arr17 = array_intersect($page4,$page6);
$arr18 = array_intersect($page4,$page7);
//5*6,5*7
$arr19 = array_intersect($page5,$page6);
$arr20 = array_intersect($page5,$page7);
//6*7 
$arr21 = array_intersect($page6,$page7);
//зʼєднуємо все
array_merge($arr22, $arr21);
array_merge($arr21, $arr20);
array_merge($arr20, $arr19);
array_merge($arr19, $arr18);
array_merge($arr18, $arr17);
array_merge($arr17, $arr16);
array_merge($arr16, $arr15);
array_merge($arr15, $arr14);
array_merge($arr14, $arr13);
array_merge($arr13, $arr12);
array_merge($arr12, $arr11);
array_merge($arr11, $arr10);
array_merge($arr10, $arr9);
array_merge($arr9, $arr8);
array_merge($arr8, $arr7);
array_merge($arr7, $arr6);
array_merge($arr6, $arr5);
array_merge($arr5, $arr4);
array_merge($arr4, $arr3);
array_merge($arr3, $arr2);
array_merge($arr2, $arr1);
array_merge($arr1, $arr0);

foreach($arr1 as $item){
    echo $item.'<br>';
}

6 Востаннє редагувалося NaharD (11.02.2018 15:38:18)

Re: Алгоритм порівняння масивів

Цікаво, а що тоді робить наступний код?)

$resultArray = array_intersect($page1, $page2, $page3, $page4, $page5, $page6, $page7);
Подякували: ostap34PHP, koala, 221VOLT3

7 Востаннє редагувалося koala (11.02.2018 19:32:04)

Re: Алгоритм порівняння масивів

Дякую, що піклуєтеся про наші очі, але вони вже від вашого коду витекли.

Ну і загальне питання: а не можна ці $url№ зібрати в масив і циклом?

Подякували: ostap34PHP1