我正在尝试输出此数组的某些值。这是一个月/季节数组。要求用户输入一个季节,根据他们输入的季节,我希望它输出该季节的月份。
这是我到目前为止所拥有的——
$user_input = $_POST ['user_input'];
$month_season = array(
'January' => 'Winter',
'February' => 'Spring',
'March' => 'Spring',
'April' => 'Spring',
'May' => 'Summer',
'June' => 'Summer',
'July' => 'Summer',
'August' => 'Autumn',
'September' => 'Autumn',
'October' => 'Autumn',
'November' => 'Winter',
'December' => 'Winter'
);
$j = 0;
foreach ($month_season as $value) {
if ($month_season[$j] = 'Winter')
{
echo $month_season[$j];
echo "<br>";
$j++;
}
}
例如,我只是使用冬季,直到我让它工作,然后我将扩展所有季节的代码。但是,当我在上一页输入冬天时,输出是 12 个冬天。我认为它只是为每次迭代输出冬天。
这是为什么呢?我应该在这里做什么才能得到我想要的东西?
提前谢谢。
在 PHP 中比较值时,必须使用 ==
或 ===
运算符。在语句中使用=
if
时,您可以为$month_season[$j]
提供 Winter
的值。
我认为这是一个更优雅的解决方案:
$seasonArray = array(
'January' => 'Winter',
'February' => 'Spring',
'March' => 'Spring',
'April' => 'Spring',
'May' => 'Summer',
'June' => 'Summer',
'July' => 'Summer',
'August' => 'Autumn',
'September' => 'Autumn',
'October' => 'Autumn',
'November' => 'Winter',
'December' => 'Winter'
);
$monthArray = array();
while(array_search('Winter', $seasonArray) !== FALSE) {
$key = array_search('Winter', $seasonArray);
$monthArray[] = $key;
unset($seasonArray[$key]);
}
print_r($monthArray);
最后,$monthArray
保存所需的值:
Array
(
[0] => January
[1] => November
[2] => December
)
你也可以使用不同的数组结构,就像
$seasons = array (
'Spring' => array('February', 'March', 'April' ),
'Summer' => array('May', 'June', 'July' ),
'Autumn' => array('August', 'September', 'October' ),
'Winter' => array('January', 'November', 'December' ),
)
echo $seasons[$user_input];