Иногда я использую метод "утенка", т.е. пытаюсь детально объяснить что делает код, чтобы прийти к каким-то новым выводам или другому решению.
Я разобрал свои выводы на примитивы, теперь пытаюсь собрать их в одно целое решение, но что-то никак, чего-то не хватает.
Входящие данные:
$div1 и $div2 - два массива координат, в данном случае это абстрактные данные.
ключи обоих массивов:
str_start - строка начала блока
str_end - строка конца блока
pos_start - позиция в строке начала
pos_end - позиция в строке конца
Обычно рассуждения начинаются со 100%ного утверждения:
100%ное утверждение
if(($div1['str_start']<$div2['str_start']) && ($div1['str_end']>$div2['str_end']))
{echo 'div2 внутри div1 это true';}
//у него может быть всего 2 варианта
//если оно false тогда нужно проверить не получим ли мы true если поменяем переменные местами
//если и во втором случае будет false то проводим другой анализ. точнее более детальное исследование ситуации
Если требуется дополнительное исследование то я делаю примерно что-то такое
//сверим начала блоков
function test1(){
if($div1['str_start']==$div2['str_start']) {return true;}
else{return false;}}
//сверим концы блоков
function test2(){
if($div1['str_end']==$div2['str_end']) {return true;}
else {return false;}}
//проверим общую картину
if(test1()==true && test2()==true)
{echo 'блоки начинаются и заканчиваются в одних строках нужно проверить позиции в строке и понять кто раньше начался';}
elseif(test1()==true && test2()==false)
{echo 'блоки начинаются в одной строке а заканчиваются в разных нужно понять кто закончился позже';}
elseif(test1()==false && test2()==true)
{echo 'блоки начинаются в разных строках а заканчиваются в одной нужно понять кто начался раньше';}
elseif(test1()==false && test2()==false)
{echo 'у блоков разные строки начала и конца возвращаемся к 100%ному утверждению и ищем ответ там';}
Вот эти два условия очень похожи друг на друга
elseif(test1()==true && test2()==false)
{echo 'блоки начинаются в одной строке а заканчиваются в разных нужно понять кто закончился позже';}
elseif(test1()==false && test2()==true)
{echo 'блоки начинаются в разных строках а заканчиваются в одной нужно понять кто начался раньше';}
Не могу понять что делать дальше.
_____________
программирование - инструмент для решения конкретных задач, любая попытка спроектировать что-то универсальное приведет к провалу.©paul85
В любом случае тебе прийдётся пройти путь изобретения велосипеда, который прошли другие, только причиной твоего изобретения будет непонимание принципов работы велосипеда изобретённого другими людьми.©SlavaFr
jQuery это попытка использовать АН-225 для перевозки зубочистки