Я создаю раздел фильтров для своей страницы поиска, и мне было интересно, как лучше всего выполнить строки запроса.Моя проблема в том, что эти ссылки очень похожи на флажки, поэтому некоторые, все или ни один могут быть включены.Мне нужно было бы перебрать каждую из примерно 30 ссылок, удалив или добавив значение этой конкретной ссылки в зависимости от ее состояния.
Моя первая проблема:
Должен ли я передавать массивы как
colors=red,blue,green //explode?
или
colors[]=red&colors[]=blue&colors[]=green //parse_str?
Какой самый быстрый / лучший способ удалить определенное значение определенного массива, когда я перебираю каждую ссылку?Я полагаю, что было бы немного сложнее использовать второй метод, который я опубликовал выше, да?
РЕДАКТИРОВАТЬ2 - Что вы думаете об этом?
Я наткнулся на онлайн-учебник и придумал следующее:
function remove( $filters = array(), $remove_key = NULL, $remove_val = NULL )
{
if( $remove_key != NULL && array_key_exists($remove_key,$filters) )
{
if( $remove_val != NULL && array_key_exists($remove_val,array_flip($filters[$remove_key])) )
{
$filters[$remove_key] = array_diff($filters[$remove_key],array($remove_val));
} else {
unset($filters[$remove_key]);
}
}
return http_build_query( $filters );
}
В настоящее время я могу передать $ remove_key для удаления ключа и $ remove_val для удаления значения из ключав массиве.
Что вы, ребята, думаете?Это будет слишком медленно для 30-50 ссылок?Спасибо!