我正在尝试将sub_menu项目(li)的数量限制为最多4个。我没有php开发人员,但是给了它一些代码,如下所示。
这是现有的代码,它将继续全部显示,现在没有限制。
if (count($sub_menu_array)) {
echo '<nav id="sub-nav"><ul>';
foreach ($sub_menu_array as $sub_menu_row) {
// print_r($sub_menu_row);
echo '<li><a href="'.HTTP_HOST.$sub_menu_row['categoryPath'].'">'.strtoupper($sub_menu_row['categoryName']).'</a></li>';
}
echo '</ul></nav>';
} else {
echo '<nav id="sub-nav"><ul><li></li></ul></nav>';
}
这是我尝试的内容,但它最终没有显示任何内容。
if (count($sub_menu_array)) {
echo '<nav id="sub-nav"><ul>';
$i = 0;
foreach ($sub_menu_array as $sub_menu_row => $v) {
// print_r($sub_menu_row);
echo '<li><a href="'.HTTP_HOST.$sub_menu_row['categoryPath'].'">'.strtoupper($sub_menu_row['categoryName']).'</a></li>';
if (++$i == 3) break;
}
echo '</ul></nav>';
} else {
echo '<nav id="sub-nav"><ul><li></li></ul></nav>';
}
答案 0 :(得分:1)
PHP foreach语句的语法有两个不同的变体
foreach (array_expression as $value){
statement
}
foreach (array_expression as $key => $value)
statement
当您从
链接代码时foreach ($sub_menu_array as $sub_menu_row) {
到
foreach ($sub_menu_array as $sub_menu_row => $v) {
您还更改了适用于$ sub_menu_row的值。例如:
$sub_menu_array = array ('a','b');
在第一次迭代的第一个变体中
$sub_menu_row=='a'
和第二个变种
$sub_menu_row==0 #array's element key
$v=='a' #value
有两种解决方案
答案 1 :(得分:0)
您已更改了foreach,现在应该使用$ v作为值。
if (count($sub_menu_array)) {
echo '<nav id="sub-nav"><ul>';
$i = 0;
foreach ($sub_menu_array as $sub_menu_row => $v) {
// print_r($sub_menu_row);
echo '<li><a href="'.HTTP_HOST.$v['categoryPath'].'">'.strtoupper($v['categoryName']).'</a></li>';
if (++$i == 3) break;
}
echo '</ul></nav>';
} else {
echo '<nav id="sub-nav"><ul><li></li></ul></nav>';
}
答案 2 :(得分:0)
对于菜单部分来说这应该足够了:
echo '<nav id="sub-nav"><ul>';
$i = 0;
foreach ($sub_menu_array as $sub_menu_row => $v) {
if($i < 4) {
echo '<li><a href="'.HTTP_HOST.$sub_menu_row['categoryPath'].'">'.strtoupper($sub_menu_row['categoryName']).'</a></li>';
}
$i++;
}
echo '</ul></nav>';
答案 3 :(得分:0)
在显示菜单
之前插入此行$sliced_sub_menu_array = array_slice($sub_menu_array, 0, 4);
然后
foreach ($sliced_sub_menu_array as $sub_menu_row => $v) {
// displaying here
}
答案 4 :(得分:-1)
使用此代码。
<?php
if (count($sub_menu_array)) {
echo '<nav id="sub-nav"><ul>';
$i = 0;
foreach ($sub_menu_array as $sub_menu_row => $v) {
// print_r($sub_menu_row);
echo '<li><a href="'.HTTP_HOST.$sub_menu_row['categoryPath'].'">'.strtoupper($sub_menu_row['categoryName']).'</a></li>';
if ($i == 3)
{
break;
}
$i++;
}
echo '</ul></nav>';
} else {
echo '<nav id="sub-nav"><ul><li></li></ul></nav>';
}
?>