Php 具有相同数组名称的Foreach循环数组
我想做的是: 我想根据年/月/日回显信息 我的代码是:Php 具有相同数组名称的Foreach循环数组,php,foreach,Php,Foreach,我想做的是: 我想根据年/月/日回显信息 我的代码是: $data = array( "2018" => array( "September" => array( "02" => array( "Line 1" ), "02" => array( "Line 11" ),
$data = array(
"2018" => array(
"September" => array(
"02" => array(
"Line 1"
),
"02" => array(
"Line 11"
),
"12" => array(
"Line 2"
),
"31" => array(
"Line 3"
)
),
"December" => array(
"02" => array(
"Line 11"
),
"12" => array(
"Line 22"
),
"31" => array(
"Line 33"
),
"32" => array(
"Line 66"
)
)
),
"2019" => array(
"May" => array(
"05" => array(
"Line z"
),
"15" => array(
"Line y"
),
"55" => array(
"Line x"
)
)
)
);
echo '<pre>';
print_r($data);
echo '</pre>';
foreach ($data as $years => $year) {
echo $years . "<br>";
foreach ($year as $months => $month) {
echo $months . "<br>";
foreach ($month as $days => $day) {
foreach ($day as $key => $value) {
echo $days . " - " . $value . "<br>";
}
}
}
}
但是我得到了这个
"September" => array(
"02" => array(
"Line 1",
"Line 11"
),
"12" => array(
"Line 2"
),
"31" => array(
"Line 3"
)
),
如何回显2018年9月2日的两个值?您不能有重复的键。您正在定义02两次 解决方案:将九月定义为:
如果使用重复的数组名,则第一个数组中的最后一个数组将被替换。一个数组中不能有两个相同的键,因为数组键是唯一的。@Devon那么这里的解决方案是什么?我对数组不是很有经验。你的结构无效,你需要重新处理它,因为你的数组在编写时不能存在。您可以在2002年9月2日将第1行和第11行存储在同一数组中,但不能有两个02键。可能存在重复的
2018
September
02 - Line 11
12 - Line 2
31 - Line 3
"September" => array(
"02" => array(
"Line 1",
"Line 11"
),
"12" => array(
"Line 2"
),
"31" => array(
"Line 3"
)
),