Php 是否可以按“计数($getaffreferrals)”对输出进行排序?

Php 是否可以按“计数($getaffreferrals)”对输出进行排序?,php,html,mysql,wordpress,affiliate,Php,Html,Mysql,Wordpress,Affiliate,是否可以通过count$getaffreferrals对$closerstring输出进行排序 我附上了一张照片,显示它目前在我的网站上输出的内容 如果将数据放在多维数组中,一个字段是字符串,另一个字段是要排序的字段,那么可以使用PHP的array_multisort对该键进行排序。我还没有测试过这段代码,但应该是这样的: function affiliate_leaderboard_function() { global $wpdb; $getallreferrals = $

是否可以通过count$getaffreferrals对$closerstring输出进行排序

我附上了一张照片,显示它目前在我的网站上输出的内容


如果将数据放在多维数组中,一个字段是字符串,另一个字段是要排序的字段,那么可以使用PHP的array_multisort对该键进行排序。我还没有测试过这段代码,但应该是这样的:

function affiliate_leaderboard_function() {
    global $wpdb;

    $getallreferrals = $wpdb->get_results( "SELECT * FROM `wp_affiliate_wp_referrals`");
    $getallaffiliates = $wpdb->get_results( "SELECT * FROM `wp_affiliate_wp_affiliates`");
    $current_month = date("m");
    $current_year = date("Y");
    $current_date = date("Y-m-d");
    $lastday = date('t',strtotime($current_date));

    function styleleaderboard() {
        ?>
            <style>
                span.numberofsales {
                                font-size:18px !important;
                    color : #666 !important;
                }
                            .closerstring {
                                text-transform: capitalize;
                }
            </style>
        <?php
    }
    add_action('wp_head', 'styleleaderboard');
    styleleaderboard();

    $my_array = array();
    foreach ($getallaffiliates as $theaffiliate) {
        $user_id = get_userdata( $theaffiliate->user_id );
        $userfirstname = $user_id->first_name;
        $userlastname = $user_id->last_name;
        $totalreferrals = $theaffiliate->referrals;
        $affiliate_id = $theaffiliate->affiliate_id;
        $getaffreferrals = $wpdb->get_results( "SELECT `date` FROM `wp_affiliate_wp_referrals` WHERE `affiliate_id` = $affiliate_id AND `date` >= '$current_year-$current_month-01:00:00:00' AND `date` < '$current_year-$current_month-$lastday:23:59:59'");//Get all referrals by affiliate id
        $getaffreferrals_count = count($getaffreferrals);
        $closerstring = "<li class='closerstring'>".$userfirstname." ".$userlastname."<br><span class='numberofsales'>Sales: ".$getaffreferrals_count."</p></li>";
        if(!empty($getaffreferrals) && $affiliate_id!='1'){
            $my_array[] = array('affreferrals' => $getaffreferrals_count, 'closerstring' => $closerstring);
            //$return_array.= $closerstring;
        }
    }

    // Obtain a list of columns
    $referrals = array();
    $closerstr = array();
    foreach ($my_array as $key => $row) {
        $referrals[$key] = $row['affreferrals'];
        $closerstr[$key] = $row['closerstring'];
    }

    // Sort the data with affreferrals descending, closerstring ascending
    // Add $my_array as the last parameter, to sort by the common key
    array_multisort($referrals, SORT_DESC, $closerstr, SORT_ASC, $my_array);

    $return_array = '';
    foreach ($my_array as $row) {
        $return_array .= $row['closerstring'];
    }

    return $return_array;
}
add_shortcode('affiliate_leaderboard' , 'affiliate_leaderboard_function');
function affiliate_leaderboard_function() {
    global $wpdb;

    $getallreferrals = $wpdb->get_results( "SELECT * FROM `wp_affiliate_wp_referrals`");
    $getallaffiliates = $wpdb->get_results( "SELECT * FROM `wp_affiliate_wp_affiliates`");
    $current_month = date("m");
    $current_year = date("Y");
    $current_date = date("Y-m-d");
    $lastday = date('t',strtotime($current_date));

    function styleleaderboard() {
        ?>
            <style>
                span.numberofsales {
                                font-size:18px !important;
                    color : #666 !important;
                }
                            .closerstring {
                                text-transform: capitalize;
                }
            </style>
        <?php
    }
    add_action('wp_head', 'styleleaderboard');
    styleleaderboard();

    $my_array = array();
    foreach ($getallaffiliates as $theaffiliate) {
        $user_id = get_userdata( $theaffiliate->user_id );
        $userfirstname = $user_id->first_name;
        $userlastname = $user_id->last_name;
        $totalreferrals = $theaffiliate->referrals;
        $affiliate_id = $theaffiliate->affiliate_id;
        $getaffreferrals = $wpdb->get_results( "SELECT `date` FROM `wp_affiliate_wp_referrals` WHERE `affiliate_id` = $affiliate_id AND `date` >= '$current_year-$current_month-01:00:00:00' AND `date` < '$current_year-$current_month-$lastday:23:59:59'");//Get all referrals by affiliate id
        $getaffreferrals_count = count($getaffreferrals);
        $closerstring = "<li class='closerstring'>".$userfirstname." ".$userlastname."<br><span class='numberofsales'>Sales: ".$getaffreferrals_count."</p></li>";
        if(!empty($getaffreferrals) && $affiliate_id!='1'){
            $my_array[] = array('affreferrals' => $getaffreferrals_count, 'closerstring' => $closerstring);
            //$return_array.= $closerstring;
        }
    }

    // Obtain a list of columns
    $referrals = array();
    $closerstr = array();
    foreach ($my_array as $key => $row) {
        $referrals[$key] = $row['affreferrals'];
        $closerstr[$key] = $row['closerstring'];
    }

    // Sort the data with affreferrals descending, closerstring ascending
    // Add $my_array as the last parameter, to sort by the common key
    array_multisort($referrals, SORT_DESC, $closerstr, SORT_ASC, $my_array);

    $return_array = '';
    foreach ($my_array as $row) {
        $return_array .= $row['closerstring'];
    }

    return $return_array;
}
add_shortcode('affiliate_leaderboard' , 'affiliate_leaderboard_function');