2017-05-28 3 views
-3

Ich habe die folgende URL: myexample.com/ city = MiamiNew Array von mehrdimensionalen Array - URL-Analyse

und ein großes Array (23k)

$e = $_GET["city"]; 


$myArray = array 
(
array ("Miami","Florida"), 
array ("Key West","Florida"), 
array ("NOLA", "Luisiana"), 
array ("Baton Rouge","Luisiana") 
); 

ich bin? Suchen Sie nach einer Lösung, um dynamisch ein neues Array von Städten zu erstellen, das mit dem Status der Stadt in der URL übereinstimmt, und alle Städte dieses Bundeslandes anzuzeigen.

Mit anderen Worten:
wenn myexample.com/?city=NOLA, ich mag "Baton Rouge" und "New Orleans" (von Luisiana)
wenn myexample.com/?city=Miami Echo, echo "Key West" und "Miami" (aus Florida)
usw.

Es gibt durchaus ein paar ähnliche Fragen schon beantwortet (here, here, aber Looping ist nicht eine der Stärken (Anfänger).

Danke,

EDIT1:

$resArray = array(); 
foreach($myArray as $arr) { 
    if(in_array($e, $arr)) 
     $resArray[] = $arr; 
} 
print_r($resArray); 

Ergebnis: Array ([0] => Array ([0] => Miami [1] => Florida))

+5

Und was wollen Sie von uns? Schreiben Sie den Codez? –

+0

Zeig uns, was hast du bis jetzt versucht? Wenn Sie erwarten, dass jemand Ihnen antwortet und einen Code für Sie schreibt, ist das nicht der richtige Ort. –

+0

Was ich versucht habe, ist zu überprüfen, ob $ e in $ myArray existiert und es zu einem neuen Array hinzufügen. (siehe Edit 1) –

Antwort

0

Zunächst einmal möchte ich Ihre restrukturieren myArray in etwa wie folgt:

$stateAndCities = [ 
    "Florida" => ["Miami","Key West"], 
    "Luisiana" => ["NOLA", "Baton Rouge"] 
]; 

nach, dass Sie besser können die Eingabe handhaben und geben einen einfacheren Ausgabe

$city = $_GET["city"]; 
$resultCities = []; 
$resultState = ""; 

// Loop over all states with their cities 
foreach($stateAndCities as $state => $cities) { 
    if(in_array($city, $cities)){ // if the given $city is in the $cities? 
     $resultCities = $cities; 
     $resultState = $state; 
     break; 
    } 
} 

if(!empty($resultState) && !empty($resultCities)){ // ensure that the city was found in any state 
    echo $resultState; 
    print_r($resultCities); 
} 

(der Code nicht getestet!)

Handbuch:

http://php.net/in_array

http://php.net/empty

+0

Danke, es funktioniert. Was ich suchte, ist der letzte Teil, wo ich hinzugefügt habe: echo "Andere Städte in". $ State. ":
"; \t for ($ x = 0; $ x " $ resultCities [$ x].."
"; \t} } –

Verwandte Themen