<?php
$a1 = array(16,17);
$a2 = array(16,17,18);
$diff = array_diff($a1, $a2);
echo "<pre>";
print_r($diff);
echo "</pre>";
а если 3 масива будеть то 3 раза вызывать?Вызывай два раза array_diff().
6а если 3 масива будеть то 3 раза вызывать?
Это был сарказм, может предложете лучший способ?6
В общем, факториал от числа массивов.
UPD: а, кстати, array_diff принимает сколько угодно массивов, т.е. да, за три вызова можно.
т.е. код должен быть таким:Функция array_diff() возвращает массив, состоящий из значений массива массив_1, которые отсутствуют в любом другом массиве, перечисленном в последующих аргументах.
<?php
$a1 = array(16,17);
$a2 = array(16,17,18);
$diff = array_diff($a2, $a1);
echo "<pre>";
print_r($diff);
echo "</pre>";
<?php
$a1 = array(16,17);
$a2 = array(16,17,18);
$a3 = array(16,17,19);
$a4 = array(16,17,20);
$merge = array_unique(array_merge($a2,$a3,$a4));
$diff = array_diff($merge, $a1);
echo "<pre>";
print_r($diff);
echo "</pre>";
Что конкретно непонятного?А я тоже нихрена не понял, что хочет человек. Какие-то длины массивов...
Если массивы (1, 2, 3) и (1, 2, 4) - что он хочет получить?
Задачу нужно формулировать полностью, а если не получается - рассказывать что его программа делает вообще.
$c1 = count($a1);
$c2 = count($a2);
if ($c1 > $c2){
$diff = array_diff($a1, $a2);
} else {
$diff = array_diff($a2, $a1);
}
$diff = array_merge( array_diff($a1, $a2), array_diff($a2, $a1) );
да (18 и 19 одновременно ) - именно то что нужно на выходеUnsiker Что-то не догоняю. Что нужно сделать-то? Вот в таком случае что должно получится?
18 и 19 одновременно или что?PHP:Array ( [0] => 16 [1] => 17 [2] => 19 ) Array ( [0] => 16 [1] => 17 [2] => 18 )