Php 从高浮点数组到低浮点数组的排序结果-wordpress

Php 从高浮点数组到低浮点数组的排序结果-wordpress,php,wordpress,sorting,arguments,Php,Wordpress,Sorting,Arguments,也许这应该很容易,但我对如何以一种好的方式对这些数据进行排序有点迷茫 我在WordPress模板中得到了这个查询,以获得一些帖子: $args = array( 'post_type' => 'page', 'fields' => 'ids', 'nopaging' => true,

也许这应该很容易,但我对如何以一种好的方式对这些数据进行排序有点迷茫

我在WordPress模板中得到了这个查询,以获得一些帖子:

                        $args = array( 
                        'post_type' => 'page',
                        'fields' => 'ids',
                        'nopaging' => true,
                        'meta_query' => array(
                        array(
                            'key' => '_wp_page_template',
                            'value' => array('page-provider.php'),
                            'compare' => 'IN',
                        ),
                            'prijs_sort' => array(
                                'key' => 'rwp_user_score',
                                'type' => 'DECIMAL(10,2)',
                                'compare' => 'EXISTS'
                            ),
                        ),

                    );
根据我从这个查询中得到的数据,我可以得到更多的信息,并希望最终结果从高到低排序

                $pages = get_posts( $args );
                foreach ( $pages as $page ) {
                    $get_average_score = get_post_meta( $page, 'rwp_user_score', true );
                    $gemiddelde_score = round($get_average_score, 1);

                    $get_review_count = get_post_meta( $page, $key = 'rwp_rating_0' , $single = false);
                    $get_review_count_aantal = array_count_values(array_column($get_review_count, 'rating_post_id'))[$page];

                    $name_provider = get_post_meta( $page, 'bedrijfsnaam_hosting_provider', false );
                    $gemiddeld_totaal = $gemiddelde_score * $get_review_count_aantal / 100;
                    echo implode(', ', $name_provider);
                    echo $gemiddeld_totaal;
                    var_dump($gemiddeld_totaal);
                    echo "<br/>";
                }
                wp_reset_postdata();
如何按
$gemiddeld\u totaal?和字段
$name\u provider
还应使用
$gemiddeld\u totaal排序

编辑 结果应该如下所示:

Name provider 1  - Average Total 1
Name provider 2  - Average Total 2
Name provider 3  - Average Total 3
编辑2(再添加一个数据字段) 在de
foreach中($page作为$page){
我在另一个foreach的输出中又得到了一个数据字段

$shortcode = do_shortcode("[rwp_users_rating_stars id='0' post=\"$page\"]");

我尝试了一些方法,但似乎不知道如何添加。这是foreach中的新行。您能解释一下如何添加吗?也许我会更好地理解它。

一种方法是使用文档说明:

我们有一个行数组,但数组_multisort()需要一个行数组 纵队

获得该部分后,可以对两个数组进行排序,如下所示:

$name_providers  = array_column($data, 'name_provider');
$gemiddelden_totaal = array_column($data, 'gemiddeld_totaal');
array_multisort($gemiddelden_totaal, SORT_DESC, $name_providers, SORT_ASC, $data);
编辑 要获得所需的结果,您可以使用以下方法:

foreach($gemiddelden_totaal as $key => $gemiddelde){
    echo $name_providers[$key] . '  - '  . $gemiddelde;
}

您好,Peter,非常感谢您的回答。您所做的很有意义,但现在我已对所有数据进行了排序。输出这些值的最佳方式是什么?因为当我尝试将数组_multisort放入变量并回显它时,我得到了1…或者这不是正确的方式吗?您好@user2812779,具体取决于您希望如何显示它可以使用和组合的信息。简单地在数组上使用echo是不起作用的。你好,Peter M,我忘了把$pages=get_posts($args);放回去,这就是它没有显示任何内容的原因。好吧,我把数组_multisort放在一个变量中,显示1111111111,变量转储显示1bool(true)1bool(true)1bool(true)1bool(true).我对array_Column是新手,所以我真的不知道如何正确使用它,但我会尝试。thanks@user2812779用于查看变量是如何构造的。@user2812779能否提供有关所需结果的更多信息?
$name_providers  = array_column($data, 'name_provider');
$gemiddelden_totaal = array_column($data, 'gemiddeld_totaal');
array_multisort($gemiddelden_totaal, SORT_DESC, $name_providers, SORT_ASC, $data);
foreach($gemiddelden_totaal as $key => $gemiddelde){
    echo $name_providers[$key] . '  - '  . $gemiddelde;
}