Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用php查找上一项并向其添加类_Php_Arrays - Fatal编程技术网

如何使用php查找上一项并向其添加类

如何使用php查找上一项并向其添加类,php,arrays,Php,Arrays,我有一个名为“current menu”的类,我想找到它以前的同级,并添加一个名为“previous menu”的类,如何仅用php实现它 我可以用jquery来实现这一点 $("#menu-header .current-menu").parent().prev().find('a').addClass('current-previous'); 但是在客户端添加上一个类的速度很慢,所以我考虑使用服务器端对其进行归档。可能吗 这是我的html和php代码,生成“第一个菜单”、“当前菜单”和“最

我有一个名为“current menu”的类,我想找到它以前的同级,并添加一个名为“previous menu”的类,如何仅用php实现它

我可以用jquery来实现这一点

$("#menu-header .current-menu").parent().prev().find('a').addClass('current-previous');
但是在客户端添加上一个类的速度很慢,所以我考虑使用服务器端对其进行归档。可能吗

这是我的html和php代码,生成“第一个菜单”、“当前菜单”和“最后一个菜单”

<?php
foreach($items as $index => $item):
?>

<li><a href="#"<?php 
if ($parent->pg_url == $item['pg_url']) echo ' class="current-menu"';
elseif($index == ($total_items - 1)) echo ' class="last-menu"'; 
elseif($index == '0') echo ' class="first-menu"';
?>><?php echo $item['mnu_name'];?></a></li>

<?php endforeach;?>

这是解决办法。我假设有些项目可能有两个类

<?php
$items[0]['class'] = "first_menu ";
$items[$total_items - 1]['class'] = "last-menu ";

foreach ($items as $index => &$item) {
    if (!$item['class']) {
        $item['class'] = '';
    }
    if ($parent->pg_url == $item['pg_url']) {
        $item['class'] .= "current-menu ";
        if ($index > 0) {
            $items[$index - 1]['class'] .= "previous-menu ";
        }
    }
}

foreach($items as $index => $item):
?>

<li><a href="#"<?php 
if ($item['class']) echo ' class="' . trim($item['class']) . '"';
?>><?php echo $item['mnu_name'];?></a></li>

<?php endforeach;?>

  • <li><a href="#">How to visit</a></li>
    
    <li><a href="#" class="previous-menu">How to visit</a></li>
    
    Array
    (
        [0] => Array
            (
                [mnu_id] => 1
                [mnu_name] => Home
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 1
                [pg_url] => home
            )
    
        [1] => Array
            (
                [mnu_id] => 5
                [mnu_name] => About
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 2
                [pg_url] => about
            )
    
        [2] => Array
            (
                [mnu_id] => 6
                [mnu_name] => Venues
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 3
                [pg_url] => venues
            )
    
        [3] => Array
            (
                [mnu_id] => 3
                [mnu_name] => How to visit
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 4
                [pg_url] => how to visit
            )
    
        [4] => Array
            (
                [mnu_id] => 2
                [mnu_name] => Project Archive
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 5
                [pg_url] => projects
            )
    
        [5] => Array
            (
                [mnu_id] => 8
                [mnu_name] => Active Space
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 6
                [pg_url] => active space
            )
    
        [6] => Array
            (
                [mnu_id] => 4
                [mnu_name] => Contact
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 7
                [pg_url] => contact
            )
    
        [7] => Array
            (
                [mnu_id] => 7
                [mnu_name] => News
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 8
                [pg_url] => 
            )
    
        [8] => Array
            (
                [mnu_id] => 9
                [mnu_name] => Resources
                [mnu_url] => 
                [mnu_additional] => 
                [mnu_order] => 9
                [pg_url] => resources
            )
    
    )
    
    <?php
    $items[0]['class'] = "first_menu ";
    $items[$total_items - 1]['class'] = "last-menu ";
    
    foreach ($items as $index => &$item) {
        if (!$item['class']) {
            $item['class'] = '';
        }
        if ($parent->pg_url == $item['pg_url']) {
            $item['class'] .= "current-menu ";
            if ($index > 0) {
                $items[$index - 1]['class'] .= "previous-menu ";
            }
        }
    }
    
    foreach($items as $index => $item):
    ?>
    
    <li><a href="#"<?php 
    if ($item['class']) echo ' class="' . trim($item['class']) . '"';
    ?>><?php echo $item['mnu_name'];?></a></li>
    
    <?php endforeach;?>