2016-06-28 9 views
2

私は、連想配列で与えられた関数を定義しようとしています。PHP連想配列。 foreachを使用してキー値のペアを取得する

これまでのところ、以下に示すコードがあります。しかし、そのコードの結果は、キーと値のペアの完全なリスト(テーブル)になります。私が得ようとしているのは、ただひとつのペアです(関数が呼び出されると)。

誰かが私を助けることができますか?

ありがとうございます!

enter code here 

<!DOCTYPE html> 
<html> 
<head> 

<body> 

<h1>List of States</h1> 

<?php 

$states = array ("AL"=>"Alabama","AK"=>"Alaska","AZ"=>"Arizona","AR"=>"Arkansas","CA"=>"California","CO"=>"Colorado","CT"=>"Connecticut", 
"DE"=>"Delaware","FL"=>"Florida","GA"=>"Georgia","HI"=>"Hawaii","ID"=>"Idaho","IL"=>"Illinois","IN"=>"Indiana","IA"=>"Iowa","KS"=>"Kansas", 
"KY"=>"Kentucky"); 

function printState($Abbr) { 

    global $states; 

     echo "<table border=1>"; 

    foreach($states as $Abbr => $value) { 

     echo "<tr>"; 
     echo "<td>"; 
     echo $Abbr; 
     echo "</td>"; 
     echo "<td>"; 
     echo $value; 
     echo "</td>"; 
     echo "</tr>"; 

    } 

     echo "</table>"; 

} 

printState("CA"); 


?> 

</body> 
</html> 
+3

を使用することができます;'で十分? –

+0

関数を呼び出すたびに1つのキー/値のペアを印刷するだけですか、関数に渡すそのキーに特定の値を取得したいですか? – Rizier123

+0

ねえ。関数が呼び出されると、ただ1つのペアを出力したいだけです。つまり、キー "CA"を渡すと、キー(CA)と州名(カリフォルニア)を含む1行だけのテーブルを取得したいと考えています。 ところで、私は$ states [$ Abbr]をエコーし​​ようとしましたが、私は状態の完全なリストを取得します。 –

答えて

4

あなたが機能を持っている必要がある場合:

function getState($code) { 
    global $states; 
    if (array_key_exists($code, $states)) { 
     return $states[$code]; 
    } 
    return false; 
} 

echo getState('GA'); 

しかしDave Chenが示唆したように、$states[$abbr];は、あなたがそれを行うだろう方法です。

+1

しかし、 'in_array'は、値が値として存在し、' $ code'が配列のキーになるかどうかをチェックします。私はそれが 'array_key_exists'であるべきだと思う。 –

+0

@Andrew完全に正しい、素晴らしいスポット! –

+0

はい、これはうまくいきました!どうもありがとう! –

0

こんにちはまた `[$略称] $状態をエコーし​​ないでしょう。この

function printState($Abbr) { 
    global $states; 
if (array_key_exists($Abbr,$states)){ 
    return "<table border=1><tr><td>$Abbr</td><td>$states[$Abbr]</td></tr></table>"; 
    } 
} 
echo printState("AK"); 
?> 
関連する問題