2009-07-30 19 views
0
$canada_territories = array("British Columbia" => "British Columbia", "Manitoba" => "Manitoba", "New Brunswick" => "New Brunswick", "Newfoundland and Labrador" => "Newfoundland and Labrador", "Nova Scotia" => "Nova Scotia", "Northwest Territories" => "Northwest Territories", "Nunavut" => "Nunavut", "Ontario" => "Ontario", "Prince Edward Island" => "Prince Edward Island", "Quebec" => "Quebec", "Saskatchewan" => "Saskatchewan", "Yukon" => "Yukon"); 
print_r($canada_territories); 

このphp配列に何が問題なのですか?

Array ([British Columbia [Manitoba]] => British Columbia [Manitoba] => Manitoba [New Brunswick] => New Brunswick [Newfoundland and Labrador] => Newfoundland and Labrador [Nova Scotia] => Nova Scotia [Northwest Territories] => Northwest Territories [Nunavut] => Nunavut [Ontario] => Ontario [Prince Edward Island] => Prince Edward Island [Quebec] => Quebec [Saskatchewan] => Saskatchewan [Yukon] => Yukon) 

さritishコロンビア[マニトバ]終わる、それは次のアレイ項目これを引き起こしている何

の一部を追加することにより、間違って行くを開始どこにあるのでしょうか?

私はこのアレイを作成してドロップダウンフォームを作成しようとしていますが、配列について十分に分かっていません。ブリティッシュコロンビアをサイクルに追加するには2度アレイに追加する必要がありますか?

これは私が通常使用するものですが、それは通常は二回、私は通常、2つの異なる値

foreach ($state_array as $sid => $statename) { 
     print '<option value=' . $sid . $selected . '>' . $statename . '</option>'; 
} 

UPDATEを見せるの下に、私は値を表示する必要があり、この場合には、私が設定したキーと値を持っています

私はタグでラップ波平、それは私がソースを表示するとき、それはあなたが単一引用符の代わりに二重を使用している場合

+0

は、あなただけの配列を定義することができますここで結果の悪いHTMLですカオスが示唆するようにキーなしで。その場合foreach($ array = $ array as $ array)を使用すると、$キーは整数配列インデックスになります(キーを指定しないと、PHPは自動的にゼロベースの配列インデックスを追加します)。 –

答えて

2

あなたが投稿している配列指定、または、出力に問題はありません。どういうわけかprint_r()の結果を誤って読んでいると思います。ドロップダウンを移入するための

は、しかし、あなたが必要なのは、次のとおりです。たぶん

$canada_territories = array( 
    "British Columbia", 
    "Manitoba", 
    "New Brunswick", 
    "Newfoundland and Labrador", 
    "Northwest Territories", 
    "Nunavut", 
    "Ontario", 
    "Prince Edward Island", 
    "Quebec", 
    "Saskatchewan", 
    "Yukon", 
); 
print_r($canada_territories); 

より混乱が少ないだろうという。

0

私はこれを見ていない:

$ php 
<?php 

print_r(array("British Columbia" => "British Columbia", "Manitoba" => "Manitoba", "New Brunswick" => "New Brunswick", "Newfoundland and Labrador" => "Newfoundland and Labrador", "Nova Scotia" => "Nova Scotia", "Northwest Territories" => "Northwest Territories", "Nunavut" => "Nunavut", "Ontario" => "Ontario", "Prince Edward Island" => "Prince Edward Island", "Quebec" => "Quebec", "Saskatchewan" => "Saskatchewan", "Yukon" => "Yukon")); 

Array 
(
    [British Columbia] => British Columbia 
    [Manitoba] => Manitoba 
    [New Brunswick] => New Brunswick 
    [Newfoundland and Labrador] => Newfoundland and Labrador 
    [Nova Scotia] => Nova Scotia 
    [Northwest Territories] => Northwest Territories 
    [Nunavut] => Nunavut 
    [Ontario] => Ontario 
    [Prince Edward Island] => Prince Edward Island 
    [Quebec] => Quebec 
    [Saskatchewan] => Saskatchewan 
    [Yukon] => Yukon 
) 

は、あなたはあなたが持っているもの本当にあなたを示した方法であなたの結果を出力していますか?

+0

ああ、私はタグでラッピングしていませんでした。ソースを見ると実際にはクロムにどのように投稿されたのですか? – JasonDavis

0

ここに問題はありません。

<?php 
$canada_territories = array("British Columbia" => "British Columbia", "Manitoba" => "Manitoba", "New Brunswick" => "New Brunswick", "Newfoundland and Labrador" => "Newfoundland and Labrador", "Nova Scotia" => "Nova Scotia", "Northwest Territories" => "Northwest Territories", "Nunavut" => "Nunavut", "Ontario" => "Ontario", "Prince Edward Island" => "Prince Edward Island", "Quebec" => "Quebec", "Saskatchewan" => "Saskatchewan", "Yukon" => "Yukon"); 
print_r($canada_territories); 
?> 

出力

Array 
(
    [British Columbia] => British Columbia 
    [Manitoba] => Manitoba 
    [New Brunswick] => New Brunswick 
    [Newfoundland and Labrador] => Newfoundland and Labrador 
    [Nova Scotia] => Nova Scotia 
    [Northwest Territories] => Northwest Territories 
    [Nunavut] => Nunavut 
    [Ontario] => Ontario 
    [Prince Edward Island] => Prince Edward Island 
    [Quebec] => Quebec 
    [Saskatchewan] => Saskatchewan 
    [Yukon] => Yukon 
) 
0

まず、なぜあなたは同じ値になるように、配列のキーと値を強制していますか?関連するテキストをドロップし、それを数値的に索引付けするように思えます。

二重引用符と二重引用符は問題ではありませんが、一重引用符を使用する必要がありますので、PHPはそこにない$ varsを探すようにしないでください(二重引用符の目的の1つ) 。そこにその記事がたくさん:http://www.google.com/search?q=php+single+vs+double+quotes

最後に、私はすべてであなたのコードを実行するときにやった結果を取得できませんでした:

Array 
(
    [British Columbia] => British Columbia 
    [Manitoba] => Manitoba 
    [New Brunswick] => New Brunswick 
    [Newfoundland and Labrador] => Newfoundland and Labrador 
    [Nova Scotia] => Nova Scotia 
    [Northwest Territories] => Northwest Territories 
    [Nunavut] => Nunavut 
    [Ontario] => Ontario 
    [Prince Edward Island] => Prince Edward Island 
    [Quebec] => Quebec 
    [Saskatchewan] => Saskatchewan 
    [Yukon] => Yukon 
) 
+0

はい、更新しました。 – JasonDavis

1

私は配列は罰金だと思う、それはあるタグです問題。

あなたが持っている:値が値を終了した後ので、引用符なしで台無し

foreach ($canada_territories as $sid => $statename) { 
    print '<option value=' . $sid . $selected . '>' . $statename . '</option>' . "\n"; 
} 

は、ブラウザが最初のスペースを想定しています。

<option value=British Columbia>British Columbia</option> 
<option value=Manitoba>Manitoba</option> 
<option value=New Brunswick>New Brunswick</option> 
<option value=Newfoundland and Labrador>Newfoundland and Labrador</option> 
<option value=Nova Scotia>Nova Scotia</option> 
<option value=Northwest Territories>Northwest Territories</option> 
<option value=Nunavut>Nunavut</option> 
<option value=Ontario>Ontario</option> 
<option value=Prince Edward Island>Prince Edward Island</option> 
<option value=Quebec>Quebec</option> 
<option value=Saskatchewan>Saskatchewan</option> 
<option value=Yukon>Yukon</option> 

これを試してみてください:この生成

foreach ($canada_territories as $sid => $statename) { 
    print "<option value=\"{$sid}\" $selected>{$statename}</option>\n"; 
} 

:あなたは、キーを必要としないので、この場合は

<option value="British Columbia" >British Columbia</option> 
<option value="Manitoba" >Manitoba</option> 
<option value="New Brunswick" >New Brunswick</option> 
<option value="Newfoundland and Labrador" >Newfoundland and Labrador</option> 
<option value="Nova Scotia" >Nova Scotia</option> 
<option value="Northwest Territories" >Northwest Territories</option> 
<option value="Nunavut" >Nunavut</option> 
<option value="Ontario" >Ontario</option> 
<option value="Prince Edward Island" >Prince Edward Island</option> 
<option value="Quebec" >Quebec</option> 
<option value="Saskatchewan" >Saskatchewan</option> 
<option value="Yukon" >Yukon</option> 
関連する問題