Benim arama sayfası için bir filtre bölümünü inşa ediyorum ve ben sorgu dizeleri yapıyveyahakkında gitmek için en iyi yolu nedir merak ediyorum. Benim sorunum bu bağlantıları onay kutusu gibi bir çok işlevi olduğunu, bu nedenle bazı tamamını veya hiçbiri üzerinde olabilir. Ben çıkarmadan veya belirli bir bağlantının değerinin durumuna bağlı olduğunu sözlerine yaklaşık 30 ya da öylesine bağlantıların her döngü olurdu.
Benim ilk husustur:
Ben gibi diziler geçmelidir
colors=red,blue,green //explode?
veya
colors[]=red&colors[]=blue&colors[]=green //parse_str?
Her bir bağlantıya ben döngü gibi belirli bir dizinin belli bir değerini kaldırmak için en hızlı / en iyi yolu nedir? Bunu ben yukarıda gönderdiniz ikinci yöntem biraz daha karmaşık olacağını hayal, evet?
EDIT2 - What do you think of this?
Ben online öğretici koştu ve bu ile geldi:
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 ); }
Şu anda, bir dizide bir anahtar bir değerini kaldırmak için bir anahtar ve $ remove_val kaldırmak için $ remove_key iletebilirsiniz.
What do you guys think? Would this be too slow fveyafveyadoing 30-50 links? Thanks!