Php 按列值对数组排序

Php 按列值对数组排序,php,arrays,wordpress,sorting,plugins,Php,Arrays,Wordpress,Sorting,Plugins,我正在开发我的简单wordpress插件。这个插件应该根据写文章的数量对所有用户进行排名,然后将其显示在html表中。除分拣外,一切正常。你知道如何按帖子数值对这个数组进行排序吗 for($id = 1;$id<=$total_users;$id++){ $ar = $wpdb->get_results("SELECT wp_users.ID, wp_users.display_name, COUNT

我正在开发我的简单wordpress插件。这个插件应该根据写文章的数量对所有用户进行排名,然后将其显示在html表中。除分拣外,一切正常。你知道如何按
帖子数
值对这个数组进行排序吗

for($id = 1;$id<=$total_users;$id++){

    $ar = $wpdb->get_results("SELECT wp_users.ID, wp_users.display_name, 
                                    COUNT(wp_posts.post_author) AS 'Number_of_posts' 
                            FROM wp_users 
                                INNER JOIN wp_posts ON wp_users.ID = wp_posts.post_author 
                            WHERE  wp_posts.post_type = 'post'  
                            AND wp_users.ID = $id 
                            AND wp_posts.post_status = 'publish'" ,         
                            ARRAY_A);


    function sort($a, $b) {
        return $a['Number_of_posts'] - $b['Number_of_posts'];
    }

    usort($ar, 'sort');

    foreach ($ar as $x){
        echo'<tr>'; 

        echo'<td>'. $x['ID']."</td>";
        echo'<td>'. $x['display_name'].'</td>';
        echo'<td>'. $x['Number_of_posts'].'</td>';
        echo'</tr>';
    }
}

echo '</table>';
echo '<br>';
对于($id=1;$idget_结果)(“选择wp_users.id,wp_users.display_name,
将(wp_posts.post_author)计算为“发布数量”
来自wp_用户
wp_users.ID=wp_posts.post_author上的内部连接wp_posts
其中wp_posts.post_type='post'
和wp_users.ID=$ID
和wp_posts.post_status='publish',
阵列(A),;
函数排序($a,$b){
返回$a['Number\U posts']-$b['Number\U posts'];
}
usort($ar,‘sort’);
外汇($ar为$x){
回声';
回显“.$x['ID']”;
回显'.$x['display_name'].';
回显“.$x[“帖子数量]”;
回声';
}
}
回声';
回声“
”;
试试这段代码

function my_count_posts_by_user(){

    global $wpdb; 
    $result = count_users();
    $total_users = $result['total_users'];

    for($id = 1;$id<=$total_users;$id++){

        $ar = $wpdb->get_results("SELECT wp_users.ID, wp_users.display_name, 
                                COUNT(wp_posts.post_author) AS 'Number_of_posts' 
                        FROM wp_users 
                            INNER JOIN wp_posts ON wp_users.ID = wp_posts.post_author 
                        WHERE  wp_posts.post_type = 'post'  
                        AND wp_users.ID = $id 
                        AND wp_posts.post_status = 'publish' order by  Number_of_posts desc" ,         
                        ARRAY_A);

        //usort($ar, 'sort');
        echo '<table>';
        foreach ($ar as $x){
            echo'<tr>'; 

            echo'<td>'. $x['ID']."</td>";
            echo'<td>'. $x['display_name'].'</td>';
            echo'<td>'. $x['Number_of_posts'].'</td>';
            echo'</tr>';
        }
    }

    echo '</table>';
    echo '<br>';
}
function my_count_posts_by_user(){
全球$wpdb;
$result=count_users();
$total_users=$result['total_users'];
对于($id=1;$idget_results)(“选择wp_users.id,wp_users.display_name,
将(wp_posts.post_author)计算为“发布数量”
来自wp_用户
wp_users.ID=wp_posts.post_author上的内部连接wp_posts
其中wp_posts.post_type='post'
和wp_users.ID=$ID
和wp_posts.post_status='publish'按发布数量的顺序描述“,
阵列(A),;
//usort($ar,‘sort’);
回声';
外汇($ar为$x){
回声';
回显“.$x['ID']”;
回显'.$x['display_name'].';
回显“.$x[“帖子数量]”;
回声';
}
}
回声';
回声“
”; }
在您的问题中添加
var_dump($ar);
的输出。(不是完整的输出,只有2-3个索引数据)尝试此解决方案:。如果您解决了问题,请告诉我。不起作用:致命错误:无法重新声明cmp()(以前声明)