2016-06-29 10 views
0

So habe ich eine URL-Struktur:PHP erstellen Array aus getrimmten url

/Umwelt/Key/Controller/Action/Parameter_Key1/Parameter_value1/Parameter_key2/Parameter_value2/etc.

Die Menge der Parameter dynamisch sein sollte, so ofcoruse im dies mit: Ich schrieb das es

for($i = 4; $i < count($url_path); $i+2){ 
    $a = $i + 1; 
    $optional_params[$url_path[$i]] = $url_path[$a]; 
} 

So wollen arbeiten, um zu erhalten Schleife

$url_path = explode('/', trim($path,'/')); 

ich die Array $ optional_params zu gefüllt sein.

Irgendwie erzeugt dieser Code eine Endlosschleife.

Zuerst war die $ a-Variable nicht da, ich dachte, es könnte helfen.

Wie auch immer, wie kann ich das machen?

Damit ein Array wie folgt erstellt wird:

Array (Key1 => value1, key2 => Wert2 usw.)

Antwort

5

Ihr Problem ist folgendes:

for($i = 4; $i < count($url_path); $i+2){ 

Beachten Sie den dritten Abschnitt in Ihrer for Schleife: $i+2

Sie geben diesen Wert nicht an $i zurück, so dass $i 4 bleibt und Sie eine endlose Schleife haben.

Sie benötigen:

for ($i = 4; $i < count($url_path); $i = $i + 2) { 
+0

oh mein Gott, das ist eine solche dummen Fehler rip .. –

+0

@RoyStijsiger ein Vorschlag ist, anstatt es in URL verwenden POST senden. sicherer. Und wenn Sie Ihr 'name' Attribut anpassen können, erhalten Sie dieses Muster ohne zusätzliche Logik. –

+0

@Anant seine teilweise Post-Parameter postly nur URL abhängig von dem Ergebnis, das Sie wollen fast alles ist Post außer der ID. –