У меня есть 2 массива, которые я хочу сравнить. На стороне A он содержит правила IPtables, разделенные отдельными столбцами. Пример массива вывода A;Сравнение содержимого 2 массивов
Array
(
[0] => Array
(
[num] => 1
[pkts] => 0
[bytes] => 0
[target] => DROP
[prot] => all
[opt] => --
[in] => *
[out] => *
[source] => 192.168.0.1/32
[destination] => 192.168.0.2/32
)
На стороне B у меня также есть массив. Однако это имеет небольшую разницу.
[1] => Array
(
[num] => 2
[pkts] => 0
[bytes] => 0
[target] => DROP
[prot] => all
[opt] => --
[in] => *
[out] => *
[source] => 192.168.5.5/32
[destination] => 192.168.6.6/32
[id] => 7
)
Как вы можете видеть, Array B имеет другую колонку. Идентификатор столбца.
То, что я хочу сделать, это, сравнить эти два с глаз А.
Так,
A -> B, то я хочу, чтобы вывести разницу.
В поле есть массив A, заполненный 3 правилами, и Array B, например, 4 правила.
Array A необходимо посмотреть на массив B, затем выводить то, что не там.
Array B должен быть точной копией Array A, если можно так выразиться.
То, что я пробовал, заключается в использовании array_diff
. Тем не менее, я обнаружил, что это не работает, поскольку в массиве B есть столбец идентификатора, всегда являющийся разницей.
Так что в основном я ищу измененный массив_дифф, который не Посмотрите на столбец ID в массиве B ... как этого достичь?
Не могли бы вы просто отменить столбец идентификатора (сделать копию умно), а затем использовать array diff для массива без id? – Nanne
Оба массива имеют столбец 'id'. – Minoru
@LucasHarada Ой, извините, немного с ума сошел. Посмотрите сейчас, отредактировав мою ситуацию. – MichaelP