|
|
|
| Всем привет. Нужен совет и помощь в сравнении 2-х больших строк, а именно значений.
Имею строку вхождения примерно такую:
rub:5869=0 or
cat:5867=1;rub:5869=0 or
cat:5867=0;rub:5869=1 or
cat:5867=0 or
cat:5867=0,23=1;rub:5869=0 or
cat:5867=0;rub:5869=0,1=0,34=0
и тд
|
уровень вложенности рубрикатора : ид товара = номер по порядку (сортировка)
И строка в базе допустим такого вида:
dir:22=0;cat:5867=1,34=0;rub:5869=0,34=1
|
Нужно сравнить строку вхождения со строкой имеющейся в базе, а именно:
1 - разбить на детали по ;:,= для сравнения
2 - на каждом уровне вложенности проверить схожесть ид товара и номер по порядку, т.е. если у нас строка вхождения будет такова:
Нам должно сообщить, что на уровне dir товар 22 в позиции 0 уже имеется, после чего прибавить счетчик на единицу, если счетчик = 1, выходим из цикла....
Этим мы сообщаем, что на данном уровне данный товар с его позицией уже размещен... Вот строку:
без проблем пропустить должно, т.к. порядковый номер отличается и место свободно для размещения. Надеюсь доступно объяснил. | |
|
|
|
|
|
|
|
для: TetRiska
(08.02.2012 в 14:23)
| | сделал и пришел к выводу, что лучше не делать проверку, т.к. много циклов выходит, нагружает машину, буду другое придумывать | |
|
|
|
|
|
|
|
для: TetRiska
(08.02.2012 в 14:23)
| | Выглядит как ТЗ к небольшому проектику. Вы предлагаете дать вам готовый код? Алгоритм у вас есть. Может вы начнете что-то сами писать, а когда уже не будет получаться, будете попутно задавать вопросы? | |
|
|
|
|
|
|
|
для: Sfinks
(08.02.2012 в 16:41)
| | я уже ответил, что ненужно, т.к. сам справился и увидел, что ресурсоемко будет для сервера | |
|
|
|