Как сделать сравнение двух массивов, что бы при совпадении значений ничего не выводилось? - вопрос №357636

Приветствую! Сразу к делу, без лишних вступлений :D<br />Исходные данные:<br /><br />- $rss_array — это парсинг трёх XML-файлов (rss-ленты с сайта) с помощью simplexml_load_file();<br />- $data_array — это ранее сохранённый в файл на серваке $rss_array (при предыдущем запуске скрипта);<br /><br /><br />print_r($rss_array);<br /><br />// Выведет:<br /><br />Array (<br /> [0] => array ( <br /> [channel] => array ( <br /> [item] =>array (<br /> [0] => array ( <br /> [title] => Заголовок1, <br /> [link] => Ссылка1, <br /> [description] => Описание1, <br /> [...] =>… <br /> ),<br /> [1] => array ( <br /> [title] => Заголовок2, <br /> [link] => Ссылка2, <br /> [description] => Описание2, <br /> [...] =>… <br /> ),<br /> [2] => array ( <br /> [title] => Заголовок3, <br /> [link] => Ссылка3, <br /> [description] => Описание3, <br /> [...] =>… <br /> )<br /> )<br /> )<br /> )<br />)<br /><br />print_r($data_array);<br /><br />// Выведет:<br /><br />Array (<br /> [0] => Заголовок1,<br /> [1] => Заголовок2,<br /> [2] => Заголовок3<br />)<br /><br />__________________________________________________________<br /><br />Код следующий:<br /><br />$rss_array = array(<br /> simplexml_load_file('http://site1.ru/rss.xml'),<br /> simplexml_load_file('http://site2.ru/feed'),<br /> simplexml_load_file('https://site3.ru/feed.rss')<br /> );<br /> <br />$data_array = file('data.txt');<br />$save_title = '';<br /><br />foreach($rss_array as $items => $key)<br />{<br /><br />echo $rss_array[$items]->channel->item[0]->title;<br />$save_title .= $rss_array[$items]->channel->item[0]->title."\n";<br />file_put_contents('data.txt', $save_title, LOCK_EX);<br /><br />}<br /><br />___________________________________________________________<br /><br />Суть вопроса: в скрипте выше непонятно как сделать сравнение двух массивов, что бы при совпадении значений ничего не выводилось (в данном случае echo массива $rss_array), а foreach() переходил к сравнению следующего элемента?.. <br /><br />Что написал — сам не понял, попробую на пальцах..<br /><br />ЕСЛИ (Заголовок1 из $rss_array == Заголовок1 из $data_array) ТО (пусто)<br />ЕСЛИ (Заголовок2 из $rss_array == Заголовок2 из $data_array) ТО (пусто)<br />ЕСЛИ (Заголовок3 из $rss_array == Заголовок3 из $data_array) ТО (пусто)<br /><br />ИНАЧЕ (вывод НЕ СОВПАВШИХ заголовков из $rss_array)<br /><br />Бред, конечно, но пробовал сделать вот так:<br /><br />// ...<br />foreach($rss_array as $items => $key)<br />{<br /><br /> $arr1 = $rss_array[$items]->channel->item[0]->title;<br /> $arr2 = $data_array[$items];<br /><br /> if ($arr1 != $arr2)<br /> {<br /> echo $rss_array[$items]->channel->item[0]->title;<br /> $save_title .= $rss_array[$items]->channel->item[0]->title."\n";<br /> file_put_contents('data.txt', $save_title, LOCK_EX);<br /> }<br /><br />}<br /><br />________________________________________________________________<br /><br />Так что прошу помощи опытных кодеров… <br /><br />P.S. Если кому интересно, то это кусок кода от моего бота для твиттера. С помощью него отслеживаю только нужные мне новости/акции/etc. (поэтому и нужно сравнение заголовков перед постингом) с нескольких сайтов (всё на автомате по CRON). Удобно и оперативно, имхо.

Дополнение автора от 10.09.12 01:05:01

Почему-то не всё сообщение влезло…

Да и не мешало бы сделать BB-тег для вставки кода… вообщем, если что — скайп: vikkyshostak

10.09.12
0 ответов

Ответы

Дима

Читать ответы
Посмотреть всех экспертов из раздела Технологии > PHP
Пользуйтесь нашим приложением Доступно на Google Play Загрузите в App Store