php dizi ve foreach?

3 Cevap php

Aşağıda işe almak için çalışıyorum benim kod ama gerçekten dizi ve foreach çok az bilgiye sahip. Bu yüzden değil; t düzgün çalışmıyor

I need to show a dropdown select form to the browser with the contents of the array I also need to have the item selected if it is == to $mycountry Lastly I would like to show the USA and UK at the top of my list

Herkes Al bunu nasıl bana söyleyebilir misiniz

<?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>

3 Cevap

foreach ($countries as $key => $country) {
    $selected = ""
    if ($key == $mycountry) $selected = ' selected="selected" ';
    print '<option value=' . $key . $selected . '>' . $country . '</option>';
}

Temelde, dizi içindeki her bir eleman için, onun anahtarı ve değeri (yani $ countreis [anahtar] = value) içine kırıyorlar. Eğer diziler etrafında baş almak (ve onlar çok kafa karıştırıcı olabilir) bir kez daha kolay bir milyon kere kodlama yapacaktır.

(Nedense dizim / biçimlendirme ... benim kod çalışmıyor)

Ben aradığınız tahmin için gidiyorum:

foreach($countries as $id => $country) {
    echo '<option value="$id"' . ($mycountry==$id?'selected="selected"':'') . '>' . $country . '</option>';
}

ABD ve İngiltere üstünde olduğundan emin olmak için olduğu gibi, bu 2 (ki çok kolay olurdu) dizinizin üstünde olduğundan emin olun.

Siz dizinin üstünde ABD ve İngiltere koymak ve sonra gibi bir şey kullanmak gerekir:

foreach($countries as $row => $value) {
    echo "<option value=\"$row\"" + ($row == 'usa' ? 'SELECTED') + ">$value</option>";
}

ve = "Seçili" yerine SEÇİLMİŞ seçilmiş kullanmalısınız