Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Сравнение массива xml и массива sql result
Форумы портала PHP.SU » » XML и его обработка » Сравнение массива xml и массива sql result

Страниц (1): [1]
 

1. technokid - 20 Июня, 2013 - 15:56:25 - перейти к сообщению
Всем привет.
Вопрос в слудеющем,
у меня есть 2 массива.
1 - массив данных с xml файла

PHP:
скопировать код в буфер обмена
  1.  
  2. $xml = simplexml_load_file("test_file.xml");
  3. $resultXML = $xml->xpath('/MSG/line');
  4.  

xml выглядит примерно так:
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <MSG>
  4. <line code="1" name="Кипр" serverid="pol1"></line>
  5. <line code="2" name="Таиланд" serverid="pol1"></line>
  6. <line code="3" name="Турция" serverid="pol1"></line>
  7. <line code="4" name="ОАЕ" serverid="pol1"></line>
  8. <line code="5" name="Испания" serverid="pol1"></line>
  9. </MSG>
  10.  


2 - массив выборки с базы данных.
PHP:
скопировать код в буфер обмена
  1.  
  2. $result = $db->query('SELECT * FROM table_name');
  3. $resultDb = $result->fetchAll(PDO::FETCH_ASSOC);
  4.  


Ключи в массивах только 2 сповпадают, это "code" i "name", все остальные разные
Нужно в цикле, перебрать все "code" и смотреть,
1) если есть такой код в другом массиве, смотрим совпадают ли "name",
2) если "name" совпали то делаем какое-то действие,
3) если "name" не совпали то делаем какое-то действие,
4) если нет такого "code" делаем тогда опять какое-то действия

Помоги плизззз.
2. DelphinPRO - 20 Июня, 2013 - 16:02:58 - перейти к сообщению
проблема в чем? не знаете как работать в xml?
получить атрибуты - http://www.php.net/manual/ru/sim...t.attributes.php
берем нужный атрибут, сравниваем со значением в другиом массиве.

иль готовый код нужен?
3. DlTA - 20 Июня, 2013 - 16:03:25 - перейти к сообщению
technokid пишет:
Помоги плизззз.
с чем?
4. LIME - 20 Июня, 2013 - 16:08:38 - перейти к сообщению
technokid http://forum.php.su/forums.php?forum=60
5. technokid - 20 Июня, 2013 - 16:09:19 - перейти к сообщению
Проблема с циклом. не могу написать правильный цыкл.
6. DelphinPRO - 20 Июня, 2013 - 16:15:02 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. $index = 0;
  2. foreach ($resultXML as $item) {
  3.   $attrs = $item->attribute();
  4.   if ($attrs->code == $resultDB[$index]['code']) {
  5.     // совпали коды
  6.     if ($attrs->name == $resultDB[$index]['name']) {
  7.       // совпали имена
  8.     }
  9.   }
  10.   $index++;
  11. }


Код примерный. Как-то так.
7. LIME - 20 Июня, 2013 - 17:03:39 - перейти к сообщению

цыкл
иногда я думаю предложить в тему "Обновление форума. Баги и ошибки пишем здесь"
концепцию стоп-слов
чтоб меняло автоматом подобные часто употребляемые слова и подчеркивало красным
а что ....хорошая была бы фишка...думаю один этот факт добавил бы ссылочной массы))
можно и дальше пойти
например при словах "не работает" выскакивало бы модульное типа "вы уверены что описали проблему достаточно полно?"
ну при посте менее скажем 100 постов
вариант?

(Добавление)
LIME пишет:
думаю один этот факт добавил бы ссылочной массы
в том смысле что будут обсуждать этот факт и давать ссылки на форум
8. DelphinPRO - 20 Июня, 2013 - 18:04:52 - перейти к сообщению
LIME пишет:
например при словах "не работает" выскакивало бы модульное типа "вы уверены что описали проблему достаточно полно?"
ну при посте менее скажем 100 постов
$) а новичкам без постов - три раза подряд, и с подтверждением через почту Голливудская улыбка
9. LIME - 20 Июня, 2013 - 18:07:17 - перейти к сообщению
DelphinPRO иди ты в тему про форум/ошибки))
имхо мысль стоящая как минимум 5сек задуматься

 

Powered by ExBB FM 1.0 RC1