我试图在foreach循环中获得最后一个条目,但到目前为止还在努力。我最大的问题是,一旦进入foreach循环,我需要通过删除每个有0个帖子的作者来过滤数组。到目前为止,这是我的代码:
$authors = get_users('orderby=nicename');
foreach ($authors as $author ) {
if ( count_user_posts( $author->id ) >= 1 ) { IF LAST {special <li>} else {normal <li> }
有人能说明如何在这种情况下获得最后一个条目吗?感谢
答案 0 :(得分:2)
您应该编写一个函数来过滤数组,然后您可以像这样弹出最后一项:
// use this section of code in PHP >= 5.3 - utilizes anonymous function
$filtered_array = array_filter($authors, function($author) {
if(count_user_posts($author->id) >= 1) return true;
return false;
});
// use this section of code for older versions of PHP - uses regular function
function author_filter($author) {
if(count_user_posts($author->id) >= 1) return true;
return false;
}
$filtered_array = array_filter($authors, 'author_filter');
// the rest is the same regardless of PHP version
$last_author = array_pop($filtered_array);
// output
foreach($filtered_array as $author) {
// regular output
}
// then do special output for $last_author
答案 1 :(得分:0)
<?php
$numItems = count($arr);
echo "<ul>";
for($i = 0; $i < $numItems; $i++) {
if(as_zero_post){
//$i++;
continue;
}
$i == $numItems-1 ? "<li class='last-item'>".$arr[$i]."</li>" : "<li class='normal-item'>".$arr[$i]."</li>";
}
echo "</ul>"
?>