PHP。我有三个数组,每个数组包含50个项目:$articles、$quotes、$links。每个数组中的每个项目都有一行内容和一个日期。
目标是创建一个数组,按日期排序(从最新到最旧(,根据数组类型的重要性进行加权。例如,它应该总是显示比引号更多的文章,比链接更多的引号。例如:
文章,文章,文章引用,文章,链接,文章,引用,文章引用。
有什么简单的方法可以做到这一点吗?谢谢
您可以利用mod运算符。
$result = array();
$i = 0;
$count = 0;
while( true ) {
$i++;
$result[] = array_pop( $articles );
if (++$count >= 50) break; // 50 items is enough
if ( $i % 3 == 0 ) { // one quote every 3 articles
$result[] = array_pop( $quotes );
if (++$count >= 50) break;
}
if ( $i % 5 == 0 ) // one link every 5 articles
$result[] = array_pop( $links );
if (++$count >= 50) break;
}
}
- 您可以根据日期对三个数组中的每一个进行排序,然后根据(日期、重要性(进行手动合并排序。在进行合并排序之前,可能值得将三个数组放在一个数组中,并编写一个通用的合并排序,这样以后就可以轻松地向系统添加新类型
- 您可以为每条记录添加一个标记重要性的自定义字段,合并三个数组,然后使用内置排序和基于(日期,重要性(的自定义比较。实现这个非常容易
嗯。。很抱歉,我认为您希望根据日期对元素进行排序,如果根据重要性进行排序:/