Как вернуть значение массива PHP из ключа? - PullRequest
3 голосов
/ 30 июля 2011

Я пытаюсь сгенерировать страну пользователя на основе выбора города в меню выбора.Я сгенерировал меню выбора, используя ассоциативный массив.Я хочу напечатать «$ city in $ country», но не могу получить доступ к $ country.Вот что у меня есть:

<?php
$cities = array("Tokyo" => "Japan", "Mexico City" => "Mexico", 
"New York City" => "USA", "Mumbai" => "India", "Seoul" => "Korea",
"Shanghai" => "China", "Lagos" => "Nigeria", "Buenos Aires" => "Argentina", 
"Cairo" => "Egypt", "London" => "England");
?>

<form method="post" action="5.php">
<?php
echo '<select name="city">';

foreach ($cities as $city => $country)
{
echo '<option value="' . $city . '">' . $city . '</option>';
}

echo '<select>';

?>

<input type="submit" name="submit" value="go" />
</form>
<?php
$city = $_POST["city"];

print ("$city is in $country");
?>

Есть идеи?Спасибо.

Ответы [ 2 ]

9 голосов
/ 30 июля 2011

Вы пытаетесь получить доступ к локальной переменной foreach $ country из цикла foreach.Вы должны сделать это внутри цикла.

Или вы можете просто получить страну из массива городов, например:

$cities[$city];
1 голос
/ 30 июля 2011
...
<?php
$city = $_POST["city"];

print ("$city is in ".$cities[$city]);
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...