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