PHP foreach排序递减
这里的新手。。。我摸不着头脑,不太明白如何按ID按DESC顺序对这些讨论评论进行排序 该站点上的其他帖子指出了一个由两部分组成的解决方案——创建两个参数。(1) 排序和(2)命名比较两个元素的函数。 就在那里。。。我迷路了。。。但是努力去理解 我认为这是代码中需要调整的主要部分:PHP foreach排序递减,php,sorting,foreach,Php,Sorting,Foreach,这里的新手。。。我摸不着头脑,不太明白如何按ID按DESC顺序对这些讨论评论进行排序 该站点上的其他帖子指出了一个由两部分组成的解决方案——创建两个参数。(1) 排序和(2)命名比较两个元素的函数。 就在那里。。。我迷路了。。。但是努力去理解 我认为这是代码中需要调整的主要部分: <?php $discList = wtis_get_discussions($post->ID); foreach($discList as $discInfo){ ?>
<?php $discList = wtis_get_discussions($post->ID);
foreach($discList as $discInfo){
?>
有什么建议吗
找到了
//Get log details
function wtis_get_discussions($show_id){
global $wpdb;
$table_name = $wpdb->prefix . WTIS_DISC_TBNAME;
$sql = "SELECT * FROM $table_name WHERE show_id=$show_id ORDER BY message_date";
//echo "<br/>Sql: " . $sql;
$wpdb->show_errors = true;
$discussionList = $wpdb->get_results($sql, ARRAY_A);
return $discussionList;
}
//获取日志详细信息
函数wtis\u get\u讨论($show\u id){
全球$wpdb;
$table\u name=$wpdb->prefix.WTIS\u DISC\u TBNAME;
$sql=“从$table\u name中选择*,其中show\u id=$show\u id按消息日期排序”;
//echo“
Sql:”.$Sql;
$wpdb->show_errors=true;
$discussionList=$wpdb->get_results($sql,ARRAY_A);
返回$discussionList;
}
现在怎么办。。。非常感谢你们的帮助。如果
$discList
是一个带有ID
字段的注释数组,这可能对您有用:
<?php
function mycmp($a, $b)
{
if ($a['ID'] == $b['ID']) {
return 0;
}
return ($a['ID'] < $b['ID']) ? 1 : -1;
}
usort($discList, "mycmp");
?>
我会为该函数添加一个可选参数,
$order\u by='message\u date'
,然后在函数的查询中使用该参数。这样,您可以在默认情况下进行排序,如有必要,可以按和方向执行不同的排序
function wtis_get_discussions($show_id, $order_by = 'message_date'){
global $wpdb;
$table_name = $wpdb->prefix . WTIS_DISC_TBNAME;
$sql = "SELECT * FROM $table_name WHERE show_id=$show_id ORDER BY $order_by";
//echo "<br/>Sql: " . $sql;
$wpdb->show_errors = true;
$discussionList = $wpdb->get_results($sql, ARRAY_A);
return $discussionList;
}
函数wtis\u get\u讨论($show\u id,$order\u by='message\u date'){
全球$wpdb;
$table\u name=$wpdb->prefix.WTIS\u DISC\u TBNAME;
$sql=“从$table\u name中选择*,其中show\u id=$show\u id ORDER BY$ORDER\u BY”;
//echo“
Sql:”.$Sql;
$wpdb->show_errors=true;
$discussionList=$wpdb->get_results($sql,ARRAY_A);
返回$discussionList;
}
然后:
如果
$order\u by
值不是您从应用程序外部接受的内容(例如,本质上是不安全的或可能无效的内容),您需要小心地将其转义并清除。现在您必须了解wtis\u get\u讨论
的作用,因为它是一个函数,可以获取您想要排序的数据。这些数据来自哪里?如果它来自数据库,那么它应该处理排序。在问题正文中包含wtis\u get\u discussions()
的定义。谢谢!正在查找函数wtis\u get\u讨论。。。它不在函数的php文件中。。。我继承了这个网站-(击掌!!成功了。你是我今天的英雄。
<?php $discList = wtis_get_discussions($post->ID);
foreach($discList as $discInfo){
?>
<?php $discList = wtis_get_discussions($post->ID, 'message_date DESC');
foreach($discList as $discInfo){
?>
<?php $discList = wtis_get_discussions($post->ID, 'show_id DESC');
foreach($discList as $discInfo){
?>