Найти различия строк между двумя 2D-массивамиPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Найти различия строк между двумя 2D-массивами

Сообщение Anonymous »

Завершаем работу над плагином регистратора доменов с открытым исходным кодом и столкнулись с некоторыми проблемами при определении момента внесения изменений.

Код: Выделить всё

$saved = array(
array( 'domain' => 'mydomain.com', 'record' => 'A', 'value' => '8.8.8.8' ),
array( 'domain' => 'mydomain.com', 'record' => 'NS', 'value' => 'ns1.mydomain.com' )
);

$new = array(
array( 'domain' => 'mydomain.com', 'record' => 'A', 'value' => '4.4.4.4' ),
array( 'domain' => 'mydomain.com', 'record' => 'NS', 'value' => 'ns1.mydomain.com' ),
array( 'domain' => 'sub.mydomain.com', 'record' => 'A', 'value' => '1.2.3.4' ),
);
— это значения, уже сохраненные у регистратора домена и используемые только для сравнения. — это массив, возвращаемый приложением, которое обработало форму на веб-сайте.
Мне нужно каким-то образом возвращать только массивы, значения которых были обновлены или которые еще не существуют/совпадают из $saved.
По сути, возвращаемый массив, который я ищу, будет:

Код: Выделить всё

array(
array( 'domain' => 'mydomain.com', 'record' => 'A', 'value' => '4.4.4.4' )
array( 'domain' => 'sub.mydomain.com', 'record' => 'A', 'value' => '1.2.3.4' ),
);
Поскольку в $saved значение было обновлено с 8.8.8.8 до 4.4.4.4, а sub.mydomain. com не соответствует ни одному массиву из $saved, что означает, что это новая запись.
Используя array_intersect, мне удалось заставить его вернуть массив это имело его значения обновлены, но, к сожалению, они все еще включают совпадающие массивы. Если бы я мог каким-то образом удалить их, это было бы именно тем, что мне нужно.
Вот демо:
http://glot.io/php/529b0c6d2fd16fe221f8 ... 55384Может быть, использовать array_uintersect с обратным вызовом, чтобы проверить, совпадают ли массивы и не установлены ли они?

Подробнее здесь: https://stackoverflow.com/questions/259 ... -2d-arrays
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»