Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP foreach排序递减_Php_Sorting_Foreach - Fatal编程技术网

PHP foreach排序递减

PHP foreach排序递减,php,sorting,foreach,Php,Sorting,Foreach,这里的新手。。。我摸不着头脑,不太明白如何按ID按DESC顺序对这些讨论评论进行排序 该站点上的其他帖子指出了一个由两部分组成的解决方案——创建两个参数。(1) 排序和(2)命名比较两个元素的函数。 就在那里。。。我迷路了。。。但是努力去理解 我认为这是代码中需要调整的主要部分: <?php $discList = wtis_get_discussions($post->ID); foreach($discList as $discInfo){ ?>

这里的新手。。。我摸不着头脑,不太明白如何按ID按DESC顺序对这些讨论评论进行排序

该站点上的其他帖子指出了一个由两部分组成的解决方案——创建两个参数。(1) 排序和(2)命名比较两个元素的函数。 就在那里。。。我迷路了。。。但是努力去理解

我认为这是代码中需要调整的主要部分:

    <?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){
?>