Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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 如何更改loadObjectList()项的位置?_Php_Joomla - Fatal编程技术网

Php 如何更改loadObjectList()项的位置?

Php 如何更改loadObjectList()项的位置?,php,joomla,Php,Joomla,我试图更改loadObjectList的位置。但它不起作用。有人能帮我解决这个问题吗 这是我使用的代码 $catID = 8; //echo $catID; $doc = JFactory::getDocument(); $page_title = $doc->getTitle(); $db = JFactory::getDBO(); $db->setQuery("SELECT title,alias FROM #__content WHERE catid = ".$catID);

我试图更改loadObjectList的位置。但它不起作用。有人能帮我解决这个问题吗

这是我使用的代码

$catID = 8;
//echo $catID;
$doc = JFactory::getDocument();
$page_title = $doc->getTitle();
$db = JFactory::getDBO();
$db->setQuery("SELECT title,alias FROM #__content WHERE catid = ".$catID);
$articles = $db->loadObjectList(); ?>
    <div>
    <?php foreach($articles as $article){
    $title = $article->title;
        if($title == $page_title){?>
            <h4><?php echo $article->title; ?></h4>
    <?php
        }else{ ?>
        <a href="<?php echo $article->alias;?>"><h4><?php echo $article->title; ?></h4></a>
        <?php }
    }
    ?>
    </div>
我想做的是,我想显示页面标题作为列表的第一个元素。这意味着如果条件的项应该首先显示


有人能帮我吗?

一个快速干法的解决方案是添加两个foreach循环,如果条件匹配,首先显示值,然后显示其余值

<?php
    foreach($articles as $article){
        $title = $article->title;
        if($title == $page_title){
            echo '<h4>'. $article->title .'</h4>';
        }
    }
    foreach($articles as $rest_articles){
        $title = $rest_articles->title;
        if($title != $page_title){
            echo '<a href="'. $rest_articles->alias. '"><h4>'. $rest_articles->title .'</h4></a>';
        }
    }
?>
更好的解决方案是将值存储在新数组中,然后再显示它们


希望这能有所帮助

我刚刚在这里做了两次尝试。可以使用多个foreach循环,但不是必需的。请尝试以下操作:

<?php
    foreach($articles as $article) {
        $title = $article->title;
        $alias = $article->alias;

        if($title == $page_title) {
            echo '<h4>'. $title .'</h4>';
        }
        else {
            echo '<a href="'. $alias. '"><h4>'. $title .'</h4></a>';
        }
    }
?>

上面的代码有什么错误?没有错误。我不能点@emmanuel你能帮我订购这张单子吗?这个括号正确吗?。无论如何,谢谢@emmanuel,我从中得到了一个想法。它可以奏效。为了获得更好的结果,您可以先对临时数组中的值进行排序,然后再显示它们。我先关闭了foreach,然后启动了rest one。只是为您调整了右括号,因为其中一个不正确,并且缺少一个;