Je suis en train de créer une section de filtres pour ma page de recherche et je me demandais quelle est la meilleure façon de faire les chaînes de requête. Mon problème est que ces liens fonctionnent comme des cases à cocher, donc certains, tous ou aucun peut être activé. Je devrais faire une boucle sur chacun d'environ 30 liens, en supprimant ou en ajoutant la valeur de ce lien spécifique en fonction de son état.Création de liens de chaîne de requête
Ma première préoccupation est:
Dois-je passer les tableaux comme
colors=red,blue,green //explode?
ou
colors[]=red&colors[]=blue&colors[]=green //parse_str?
Quel est le plus rapide/meilleure façon d'enlever une certaine valeur d'un certain tableau que je boucle à travers chaque lien? J'imagine que ça serait un peu plus compliqué d'utiliser la deuxième méthode que j'ai posté ci-dessus, oui?
EDIT2 - Que pensez-vous de cela?
J'ai couru dans un tutoriel en ligne et est venu avec ceci:
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); }
Actuellement, je peux passer $ remove_key pour enlever une clé et remove_val $ pour supprimer une valeur d'une clé dans un tableau.
Qu'en pensez-vous? Serait-ce trop lent pour faire 30-50 liens? Merci!
Note dans votre deuxième exemple, vous ne devez pas appeler 'parse_str'; PHP va peupler '$ _GET ['colors']' avec un tableau pour vous. – meagar