我想在函数输出中插入新的<li>
元素。
function gallery_nav() {
$i = 0;
foreach ($myArray as $key ) {
$i++;
echo '<li><a href="#">'. $i .'</a></li>';
}
}
它打印这个html
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
<li>7</li>
我可以将自定义<li>
元素插入此数组吗?像这样:
<li>1</li>
<li>2</li>
<li class="custom">3</li>
<li>4</li>
<li>5</li>
<li class="custom">6</li>
<li>7</li>
<li>8</li>
<li>9</li>
如果在数组中分配自定义索引,则可以执行以下操作:
<?php
$myArray = array(1,2,3,4,5,6,7); # Your original array
$customArray = array(3,6); # Your custom array
$VarCount = count($myArray); # Set the default loop count
function gallery_nav($myArray, $customArray=NULL, $VarCount) {
for($i=1; $i<=$VarCount; $i++) {
$Class = NULL;
if(in_array($i, $customArray)){
$VarCount++; # Increment extra <li>
$Class = "class="custom"";
}
echo "<li {$Class}><a href="#">{$i}</a></li>
";
}
}
gallery_nav($myArray,$customArray, $VarCount);
?>
结果是:
<li ><a href="#">1</a></li>
<li ><a href="#">2</a></li>
<li class="custom"><a href="#">3</a></li>
<li ><a href="#">4</a></li>
<li ><a href="#">5</a></li>
<li class="custom"><a href="#">6</a></li>
<li ><a href="#">7</a></li>
<li ><a href="#">8</a></li>
<li ><a href="#">9</a></li>
观看现场演示。
您可以简单地修改您的函数来检查特定的迭代次数并输出一些额外的东西:
$i = 0;
foreach ($myArray as $item => $value) {
$i++;
if ($i % 3 === 0) {
echo '<li class="custom"><a href="#">' . $i . '</a></li>';
}
echo '<li><a href="#">'. $i .'</a></li>';
}
这将每3次迭代添加一个额外的li
元素。
如果您不希望它每三次迭代添加一个额外的li
,那么将其修改回:
$i = 0;
foreach ($myArray as $item => $value) {
$i++;
if ($i % 3 === 0) {
$class = 'custom';
} else {
$class = '';
}
echo '<li class="' . $class .'"><a href="#">' . $i . '</a></li>';
}
如果您只在迭代3和迭代6中需要它,而不需要其他迭代,请将条件修改为:
if ($i === 3 || $i === 6) {
// code
}