Людид оюрый помогите с формированием строки а то уже второй день бьюсь не могу доделать.. Есть к примеру ссылки <a href="<?php Filtr($_GET['filtr'],'product',25); ?>">2-5 кВт.</a> <a href="<?php Filtr($_GET['filtr'],'product',30); ?>">5-10 кВт.</a> <a href="<?php Filtr($_GET['filtr'],'price',1250); ?>">1250 у.е.</a> <a href="<?php Filtr($_GET['filtr'],'price',500); ?>">500 у.е.</a> Теперь написал функцию которая разбирает эту строку: PHP: function Filtr($filtr, $parametr, $values) { //$filtr - полученная строка фильтра //$parametr - параметр значения //$values - значение для параметра if ($filtr == '') { $stroka=$parametr."=".$values; } else { $keywordss = preg_split("/[;]+/", $_GET['filtr']); //Загоняем данные в масив через разделитель ; foreach($keywordss as $key => $value)//Создаем новый массив с данных { $pos = strpos($value, "=");//Позиция символа $model = substr($value, 0, $pos ); //Вырезаем все до = $models = substr($value, $pos+1 ); //Вырезаем все после = $lesson[$model] = explode ("," , $models); //Создаем массив }//end foreach foreach ($lesson as $outer_key => $single_array) { $rre=''; foreach ($single_array as $inner_key => $value) { $rre=$rre.$value.","; }//end foreach 2 $rre=substr($rre, 0, strlen($rre)-1); if ($outer_key == $parametr) { $fls=$fls.$outer_key."="; $fls=$fls.$rre.",".$values.";"; } else { $fls=$fls.$outer_key."="; $fls=$fls.$rre.";"; }//end $outer_key }//end foreach 1 if (!$lesson[$parametr]) {//Если такоо параметра нету то прибавляем $fls=$fls.$parametr."=".$values; } else { $fls=substr($fls, 0, strlen($fls)-1); } $stroka=$fls; } echo "?filtr=".$stroka; } т.е. формируется строка вида "?filtr=product=25,30;price=1250,500" Так вот, вроде все работает, но как сделать что если в передаваемом параметре есть такое уже значение то не прибавлять его еще раз а удалить и вернуть строку уже без этого значения... Наверное можно это все сделать както по другому но мне ничего не пришло в голову кроме этого... Заранее благодарен за ответ
Все сделал..спс за помощь )))))))))) PHP: function creating($filtr, $parametr, $values) { if ($filtr == '') { $stroka=$parametr."=".$values; } else { $keywordss = preg_split("/[;]+/", $_GET['filtr']); //Загоняем данные в масив через разделитель ; foreach($keywordss as $key => $value) {//Создаем новый массив с данных $pos = strpos($value, "=");//Позиция символа $model = substr($value, 0, $pos ); //Вырезаем все до = $models = substr($value, $pos+1 ); //Вырезаем все после = $lesson[$model] = explode ("," , $models); //Создаем массив }//end foreach unset($lesson[0]);//удаление пустого массива if ($lesson[$parametr]) {//ЕСЛИ ТАКОЙ ПАРАМЕТР ПРИСУТСТВУЕТ В СТРОКЕ ТО if (in_array($values, $lesson[$parametr])) { //ЕСЛИ ТАКОЕ ЗНАЧЕНИЕ ПРИСУТСТВУЕТ В НАЙДЕННОМ ПАРАМЕТРЕ ТО foreach ($lesson[$parametr] as $outer_key => $single_array) {//ЗАПУСКАЕМ ЦИКЛ ПО ТЕКУЩЕМУ МАССИВУ if ($single_array == $values) { unset($lesson[$parametr][$outer_key]); } //ЕСЛИ ЗНАЧЕНИЕ СОВПАЛО ТО УДАЛИМ ЕГО ИЗ СТРОКИ }//END FOREACH } else { //ЕСЛИ ТАКОГО ЗНАЧЕНИЯ НЕТУ ТО ДОБАВИМ $lesson[$parametr][]=$values; }//END in_array } else { //ЕСЛИ ТАКОГО ПАРАМЕТРА НЕТУ В СТРОКЕ ТО ДОБАВИМ $lesson[$parametr][]=$values; }//END $lesson[$parametr] unset($lesson[0]);//удаление пустого массива foreach ($lesson as $outer_keyw => $single_arrayw) { $rre='';//фильтр foreach ($single_arrayw as $inner_key => $value) { $rre=$rre.$value.","; }//end foreach 2 if ($rre == '') { } else { $stroka=$stroka.$outer_keyw."=".$rre; $stroka=substr($stroka, 0, strlen($stroka)-1);//Удаляем лишний символ в конце строки }//END if ($rre == '') $stroka=$stroka.";"; }//end foreach ($single_arrayw as $inner_key => $value) $stroka=substr($stroka, 0, strlen($stroka)-1);//Удаляем лишний символ в конце строки }//END if ($filtr == '') $stroka="?filtr=".$stroka; if ($stroka == '?filtr=') { echo "?"; } else { echo $stroka; } }//END function creating