将新项目插入wordpress数组[PHP]

时间:2018-07-16 14:14:57

标签: php arrays foreach insert

我想在函数输出中插入新的<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>

2 个答案:

答案 0 :(得分:0)

您可以简单地修改函数以检查特定的迭代编号并输出其他内容:

$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
}

答案 1 :(得分:0)

如果您的自定义索引是在数组中分配的,则可以执行以下操作:

<?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>

See live demo