За последние 24 часа нас посетили 62168 программистов и 1679 роботов. Сейчас ищут 814 программистов ...

Как определить сдвиг последовательности значений в массиве

Тема в разделе "Прочие вопросы по PHP", создана пользователем enshtein, 28 мар 2011.

  1. enshtein

    enshtein Активный пользователь

    С нами с:
    27 авг 2006
    Сообщения:
    291
    Симпатии:
    0
    имеется два массива:
    PHP:
    1. $lastArray = array(5,5,7,3,4,7,9,0,2,1);
    2. $updateArray = array(1,1,3,5,5,7,3,4,7,9);
    необходимо определить сдвиг значений массива, а именно:
    в массиве updateArray присутствует те же значения 5,5,7,3,4,7,9 что и в lastArray, со сдвигом в 3-и первых элемента: 1,1,3
    вот эти три первых элемента мне и нужны, ну или величина сдвига относительно начала массива.
     
  2. Gromo

    Gromo Активный пользователь

    С нами с:
    24 май 2010
    Сообщения:
    2.786
    Симпатии:
    2
    Адрес:
    Ташкент
    два вложенных цикла. бежишь по первому массиву считывая по одному элементу, во вложенном цикле бегаешь по второму массиву. как только находишь совпадение, во подцикле вложенного цикла бежишь параллельно по двум массивам с каким-то начальным сдвигом, фиксируешь продолжительность совпадающей цепочки, сохраняешь куда-нибудь, а дальше уже решаешь сам - продолжить ли искать с места окончания совпадения в первом массиве, либо продолжить дальше со следующего символа в первом массиве.