如何在foreach
循环中访问特定的关联数组?
例如,我想显示以下文字:“如果现在第一个日期意味着现在是1月”。
这是我到目前为止所做的:
$namemonth = array(
1 => "January",
2 => "February",
3 => "March",
4 => "April",
5 => "May",
6 => "June",
7 => "July",
8 => "August",
9 => "September",
10 => "October",
11 => "November",
12 => "December"
);
foreach ($namemonth as $key => $value) {
echo "if now the $key[1] date, that's means now the month of $value[1]";
}
但是当我尝试运行代码时,浏览器中会显示以下值:
如果现在是日期,那就是现在的月份。直到12 *
答案 0 :(得分:1)
您不需要将索引传递给显示值。只需直接回复$key
和$value
foreach ($namemonth as $key => $value)
{echo "if now the $key date, that's means now the month of $value <br>";}
答案 1 :(得分:0)
为了解释你做错了什么,让我们来看看你提供的代码:
首先是foreach
循环:
foreach ($namemonth as $key => $value)
$namemonth
是array
$key
是array
的当前索引,例如。 $namemonth[1], $namemonth[2], ...
$value
是当前array
索引 $key[1]
转换为1[1], 2[1], 3[1] ...
。
$value[1]
转换为January[1], February[1], March[1] ...
正如您所看到的,您尝试获取的值是错误的。 1[1]
不存在,January[1]
也不存在。
如果您确实只想打印 January ,请执行以下操作:
foreach ($namemonth as $key => $value)
{
if($key == 1)
{
echo "if now the $key date means now the month of $value<br/>";
// Use break to quit the foreach loop after `if` statement is true
break;
}
}
// Output
if now the 1 date means now the month of January
答案 2 :(得分:0)
你应该尝试这个。
$month_names = array(
1 => "January",
2 => "February",
3 => "March",
4 => "April",
5 => "May",
6 => "June",
7 => "July",
8 => "August",
9 => "September",
10=> "October",
11=> "November",
12=> "December"
);
// Here $month_names is an array.
foreach($month_names AS $month_number => $month_name){
// Here $month_number is a key of an array.
// Here $month_name is a value of an array.
echo "if now the $month_number date, that's means now the month of $month_name <br/>";
}
输出
如果现在是1个日期,则表示现在是1月份
如果现在是2日期,则表示现在是2月份
如果现在是3日期,则表示现在是3月份
如果现在是4日期,则表示现在是4月份
如果现在是5日期,则表示现在是5月份
如果现在是6日期,则表示现在是6月份
如果现在是7日期,则表示现在是7月份
如果现在是8日期,则表示现在是8月份
如果现在是9日期,那意味着现在是9月份
如果现在是10日期,则表示现在是10月份
如果现在是11日期,则表示现在是11月份
如果现在是12日期,则表示现在是12月份