如何解决如何通过命名索引对数组重新排序
| 在下面的函数中,$ myrecentposts变量包含5个最新帖子的集合。我该如何获取这5个帖子并在将它们写入for循环之前对其进行重新排序,以便按数组中的标题标题索引对其进行排序?function getLatestPostsAndSort($post)
{
$myrecentposts = get_posts(
array(\'post__not_in\' => get_option(\'sticky_posts\'),\'numberposts\' => 5
)
//NEED TO RESORT THE ARRAY HERE BY [POST-TITLE]
foreach($myrecentposts as $idxrecent=>$post)
{
?><li><a href=\"<?php the_permalink(); ?>\"><?php the_title(); ?></a></li><?php
}
}
PS:明显的建议可能是以所需顺序将它们从数据库中拉出。但是,get_posts()方法不提供此类选项。默认顺序是按发布日期(最新的)。如果我将顺序更改为\“ title \”,则不会考虑发布日期,而是仅提取整个帖子集并按标题对它们进行排序。
解决方法
一般来说,您可以对数组进行排序,例如:
usort($myrecentposts,function($a,$b) {
return strcmp($a[\'title\'],$b[\'title\']);
});
您需要将title
调整为按键的实际名称。
如果这是wordpress,则根据Google的快速搜索,看起来可能是:
usort($myrecentposts,$b) {
return strcmp($a->post_title,$b->post_title);
});
如果您没有PHP 5.3,则需要将该匿名函数移至真正的函数中,例如:
function sort_post_by_title($a,$b->post_title);
}
usort($myrecentposts,\'sort_post_by_title\');
, http://php.net/manual/zh/function.usort.php
您需要使用usort();
, 您可以使用php \的usort函数:http://php.net/manual/en/function.usort.php
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。