Php 如何更改loadObjectList()项的位置?
我试图更改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);
$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。只是为您调整了右括号,因为其中一个不正确,并且缺少一个;