Intereting Posts
Данные не передаются из формы в таблицу mysql (обновление данных не происходит) даты фильтрации. Cakephp возвращает массив вместо даты, это нормально? Doctrine2 – невозможно удалить объект с однонаправленным отношением oneToMany PHP echo внутри эха генерировать php-код из wsdl Разрешить пользователю добавлять поля в форму, созданную с помощью Zend Framework как преобразовать английский формат даты в немецкий формат даты в php PHP Fire and Forget Запрос POST Установка демонстрационного приложения Yii 2 Как сохранить русские символы в кодированном файле UTF-8 Как обрабатывать Неустранимая ошибка: ошибка cURL 7: Не удалось подключиться к порту xxxx 443 Массовое переиндексация Magento дает внутреннюю ошибку сервера Что происходит быстрее, большой объединенный запрос с большим количеством PHP или несколькими небольшими выборками с меньшим количеством PHP? Проблема с командой PHP TesseractOCR Можно ли использовать для цикла внутри коммутатора?

php array и foreach?

Ниже мой код, который я пытаюсь получить, но у меня очень мало знаний о массиве и 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> 

Solutions Collecting From Web of "php array и foreach?"

 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