Array
(
[0 0 0 4] => Array
(
[0] => 0 0
[1] => 0 1
[2] => 0 2
[3] => 0 3
[4] => 0 4
)
[0 1 0 5] => Array
(
[0] => 0 1
[1] => 0 2
[2] => 0 3
[3] => 0 4
[4] => 0 5
)
[0 1 4 1] => Array
(
[0] => 0 1
[1] => 1 1
[2] => 2 1
[3] => 3 1
[4] => 4 1
)
[0 2 0 5] => Array
(
[0] => 0 2
[1] => 0 3
[2] => 0 4
[3] => 0 5
)
[0 2 0 6] => Array
(
[0] => 0 2
[1] => 0 3
[2] => 0 4
[3] => 0 5
[4] => 0 6
)
[0 3 1 4] => Array
(
[0] => 0 3
[1] => 0 4
[2] => 1 3
[3] => 1 4
)
[0 3 3 3] => Array
(
[0] => 0 3
[1] => 1 3
[2] => 2 3
[3] => 3 3
)
[0 3 4 3] => Array
(
[0] => 0 3
[1] => 1 3
[2] => 2 3
[3] => 3 3
[4] => 4 3
)
[0 5 1 6] => Array
(
[0] => 0 5
[1] => 0 6
[2] => 1 5
[3] => 1 6
)
[0 5 4 5] => Array
(
[0] => 0 5
[1] => 1 5
[2] => 2 5
[3] => 3 5
[4] => 4 5
)
[0 6 3 6] => Array
(
[0] => 0 6
[1] => 1 6
[2] => 2 6
[3] => 3 6
)
[0 6 4 6] => Array
(
[0] => 0 6
[1] => 1 6
[2] => 2 6
[3] => 3 6
[4] => 4 6
)
[1 0 2 1] => Array
(
[0] => 1 0
[1] => 1 1
[2] => 2 0
[3] => 2 1
)
[1 1 4 1] => Array
(
[0] => 1 1
[1] => 2 1
[2] => 3 1
[3] => 4 1
)
[1 1 5 1] => Array
(
[0] => 1 1
[1] => 2 1
[2] => 3 1
[3] => 4 1
[4] => 5 1
)
[1 2 5 2] => Array
(
[0] => 1 2
[1] => 2 2
[2] => 3 2
[3] => 4 2
[4] => 5 2
)
[1 4 2 5] => Array
(
[0] => 1 4
[1] => 1 5
[2] => 2 4
[3] => 2 5
)
[1 5 5 5] => Array
(
[0] => 1 5
[1] => 2 5
[2] => 3 5
[3] => 4 5
[4] => 5 5
)
[2 1 2 5] => Array
(
[0] => 2 1
[1] => 2 2
[2] => 2 3
[3] => 2 4
[4] => 2 5
)
[2 2 2 5] => Array
(
[0] => 2 2
[1] => 2 3
[2] => 2 4
[3] => 2 5
)
[2 2 2 6] => Array
(
[0] => 2 2
[1] => 2 3
[2] => 2 4
[3] => 2 5
[4] => 2 6
)
[2 2 3 3] => Array
(
[0] => 2 2
[1] => 2 3
[2] => 3 2
[3] => 3 3
)
[2 2 5 2] => Array
(
[0] => 2 2
[1] => 3 2
[2] => 4 2
[3] => 5 2
)
[2 5 5 5] => Array
(
[0] => 2 5
[1] => 3 5
[2] => 4 5
[3] => 5 5
)
[3 0 3 3] => Array
(
[0] => 3 0
[1] => 3 1
[2] => 3 2
[3] => 3 3
)
[3 0 3 4] => Array
(
[0] => 3 0
[1] => 3 1
[2] => 3 2
[3] => 3 3
[4] => 3 4
)
[3 1 4 2] => Array
(
[0] => 3 1
[1] => 3 2
[2] => 4 1
[3] => 4 2
)
[3 4 4 5] => Array
(
[0] => 3 4
[1] => 3 5
[2] => 4 4
[3] => 4 5
)
[4 5 5 6] => Array
(
[0] => 4 5
[1] => 4 6
[2] => 5 5
[3] => 5 6
)
)
например, это мой мульти-массив, и каждый ключ (0 1 0 5, 0 1 4 1) имеет свои значения. Я хочу сделать комбинацию из набора удаляемых ключей, если их значения существовали в предыдущих массивах ключей.
Например: ключ «0 1 4 1» имеет значение «0 1», которое существует в предыдущем ключе «0 1 0 5», в этом случае мы удаляем (отменяем) значение 0 1 4 1. Как я буду делать это для всех элементов. И составьте комбинации размеров ключей массива. Я надеюсь, вы понимаете это
Если я правильно понимаю, что вы собираетесь, вот один из способов сделать это путем фильтрации массива множеств с помощью array_intersect()
, Обратный вызов фильтра должен возвращать true, только если пересечение текущего набора и предыдущего набора пусто.
$result = array_filter($sets, function($set) {
static $previous = [];
$matches = array_intersect($set, $previous);
$previous = $set;
return !$matches;
});
Код в первой части ответа показывает, как удалить каждый массив, имеющий общие значения с предыдущим отдельным массивом. Если вам нужно удалить наборы, которые имеют общие значения с любой из предыдущих массивов, я бы сделал это так:
$result = array_filter($sets, function($set) {
static $previous = [];
foreach ($set as $value) {
if (isset($previous[$value])) $matches = true;
$previous[$value] = true;
}
return empty($matches);
});
Других решений пока нет …