[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: исключение найденных элементов из массива
bwolf33
Здравствуйте господа программисты.

Вот такой код, который последовательно перебирает варианты значений массива, результат преобразуется в строку, затем количество перебираемых элементов уменьшается, а позиция сдвигается на 1.

$arr = array('привет', 'как', 'у', 'тебя', 'дела');
$cnt = count($arr);

$b = 'привет как';
$c = 'тебя';

for ($j=0;$j<($cnt);$j++){
for ($i=$cnt-$j; $i>0; $i--){
$output = array_slice($arr, $j, $i, true);
$string = implode(" ",$output);
if ($string == $b){
echo $string."<br /> ";

}
}
}


Для наглядности результаты переборки если убрать условие if

привет как у тебя дела
привет как у тебя
привет как у
привет как
привет
как у тебя дела
как у тебя
как у
как
у тебя дела
у тебя
у
тебя дела
тебя
дела

То есть сначала полная строка, затем в сторону уменьшения до первого элемента. Затем переборка со второго элемента по такой же схеме вплоть до последнего.

В коде также присутствуют две переменные $b $c у которых есть совпадающие значения с элементами массива.

Сотбственно вопрос. Как при нахождении совпадения, то есть, допустим найдено совпадение с 0 позиции 2 элемента (0 и 1), в дальнейшей переборке исключить эти элементы, и продолжать уже с позиции 2. То есть если найдено совпадение "привет как" продолжать с "у тебя дела", если "привет как у тебя" - то остается "дела".
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.