2017-05-28 11 views
-3

I以下のURLがあります。myexample.com/ 市=マイアミ新しい配列 - 解析するURL

と私は(23K)

$e = $_GET["city"]; 


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

大きな配列を? URL内の都市の状態に一致する新しい都市の配列を動的に作成し、その州のすべての都市をエコーするソリューションを探しています。言い換えれば


myexample.com/?city=NOLAが、私は "バトンルージュ" と
(ルイジアナから) "NOLA" であればmyexample.com/?city=Miamiをエコーし​​たい場合は、そこ

など
(フロリダ州)から「キーウエスト」と「マイアミ」エコーかなりの数の同様の質問が(すでに herehereに答えますが、ループが強み(初心者)の一つではないされている。

ありがとうございます。

EDIT1:

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

結果:すべての配列([0] =>配列([0] =>マイアミ[1] =>フロリダ州))

+5

そして、あなたは私たちから何をしたいですか?あなたにcodezを書いてください? –

+0

あなたは今まで何を試しましたか?あなたが誰かに答えてコードを書くことを期待しているのであれば、適切な場所ではありません。 –

+0

私が試みたのは、$ myArrayに$ eが存在するかどうかをチェックし、それを新しい配列に追加することです。 (編集1を参照) –

答えて

0

まず、私はあなたのmyArray内を再構築でしょう次のようなもの:その後

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

方が良いの入力を処理し、簡単に出力

$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); 
} 
を与えることができます

(コードがテストされていません!)

マニュアル:

http://php.net/in_array

http://php.net/empty

+0

ありがとう、それは仕事です。私が最後にしたのは、最後に追加した部分です: echo "他の都市"。$ state。 ":
";用 \t($ X = 0; $ X <カウント($ resultCities); $のX ++){ \t \tエコー "
" $ resultCities [$ X]。"
"; \t} } –