考虑这个嵌套数组:
$link = array(
'Level 1' => array(
'Monthly' => array(
'note' => 'Note 1 1',
'link' => '1.1.com',
),
'6 Month' => array(
'note' => 'Note 1 6',
'link' => '1.6.com',
),
),
'Level 2' => array(
'Monthly' => array(
'note' => 'Note 2.1',
'link' => '2.1.com',
),
'6 Month' => array(
'note' => 'Note 2.6',
'link' => '2.6.com',
),
),
我如何优雅地使用foreach
来实现以下目标:
if $var = 'Level 1' output
<a href="1.1.com" title="Note 1 1">Monthly</a>
<a href="1.6.com" title="Note 1 6">6 Month</a>
我怀疑我可能需要在循环中做一个循环?我可以遍历数组,但是我无法弄清楚如何调用子数组的名称......
答案 0 :(得分:1)
<?php
$key = 'Level 1';
$link = array(
'Level 1' => array(
'Monthly' => array(
'note' => 'Note 1 1',
'link' => '1.1.com',
),
'6 Month' => array(
'note' => 'Note 1 6',
'link' => '1.6.com',
),
),
'Level 2' => array(
'Monthly' => array(
'note' => 'Note 2.1',
'link' => '2.1.com',
),
'6 Month' => array(
'note' => 'Note 2.6',
'link' => '2.6.com',
),
),
);
if(isset($link[$key])) {
foreach($link[$key] as $array) {
print_r($array);
}
}
?>
RETURNS
Array
(
[note] => Note 1 1
[link] => 1.1.com
)
Array
(
[note] => Note 1 6
[link] => 1.6.com
)
我检查是否先设置然后在set键上运行foreach以打印出你需要的内容。
<强> 强>
if(isset($link[$key])) {
foreach($link[$key] as $key => $array) {
print $key;
print_r($array);
}
}
返回
Monthly
Array
(
[note] => Note 1 1
[link] => 1.1.com
)
6 Month
Array
(
[note] => Note 1 6
[link] => 1.6.com
)
答案 1 :(得分:0)
我认为在这种情况下使用嵌套循环是优雅的。
只需使用两个foreach。
答案 2 :(得分:0)
如果您尝试在主数组中定义数组
,那就是它的样子 foreach ($link as $sub_array) {
//do something
foreach ($sub_array as $sub_of_sub) {
// do something and so on
}
}