Ниже мой код, который я пытаюсь получить, но у меня очень мало знаний о массиве и foreach
. Так что это не работает правильно
Мне нужно показать форму dropdown
в браузере с содержимым массива
Мне также нужно, чтобы элемент был выбран, если он равен $ mycountry. Наконец, я хотел бы показать США и Великобританию в верхней части моего списка
Может ли кто-нибудь сказать мне, как я могу это сделать?
<?PHP $countries = array( "217" => "Turkenistan", "218" => "Turks and Caicos Islands", "219" => "Tuvalu", "220" => "Uganda", "221" => "Ukraine", "222" => "United Arab Emirates", "223" => "United Kingdom (Great Britain)", "224" => "United States"); $mycountry = 224; ?> <select name="country" style="width:180px;" onChange="do_get_rest_popup(this.value)" /> <?php $countryCounter = 1; $amtOfCountries = count($countries); //foreach ($country as $id => $c) { for( $_top=0; $_top < $amtOfCountries; $_top++ ){ if ($countryCounter == $amtOfCountries) { echo "<option value=\"$countries[0]\" SELECTED>$countries[1]</option>"; } else { echo "<option value=\"$countries[0]\">$countries[1]</option>"; $countryCounter++; } } ?> </select>
foreach ($countries as $key => $country) { $selected = "" if ($key == $mycountry) $selected = ' selected="selected" '; print '<option value=' . $key . $selected . '>' . $country . '</option>'; }
В принципе, для каждого элемента массива вы разбиваете его на свой ключ и его значение (т.е. $ countreis [key] = value). Как только вы получите голову вокруг массивов (и они могут быть очень запутанными), это сделает кодирование в миллион раз легче.
(По какой-то причине подсветка синтаксиса / форматирование не работает в моем коде …)
Я собираюсь угадать, что вы ищете:
foreach($countries as $id => $country) { echo '<option value="$id"' . ($mycountry==$id?'selected="selected"':'') . '>' . $country . '</option>'; }
Что касается уверенности в том, что США и Великобритания находятся на вершине, убедитесь, что эти 2 находятся на вершине вашего массива (это было бы очень просто).
Вы должны положить США и Великобританию в верхнюю часть своего массива, а затем использовать что-то вроде:
foreach($countries as $row => $value) { echo "<option value=\"$row\"" + ($row == 'usa' ? 'SELECTED') + ">$value</option>"; }
и вы должны использовать selected = "selected" вместо SELECTED