代码之家  ›  专栏  ›  技术社区  ›  user2812779

ACF根据字段值进入前10名

  •  0
  • user2812779  · 技术社区  · 6 年前

    我正在使用acf有一段时间了,我想这会更容易,但我不知道如何正确地做到这一点…

    我在试着创造一个奖杯柜。所以每个公司都有一个分数存储在一个名为“公司分数”的acf中。

    例如,我们有微软、facebook和twitter公司。他们都有得分:

    • Facebook=20万
    • 微软=90万
    • 推特=100000

    所以前三名会是

    • 1)微软
    • 2)脸谱网
    • 3)推特

    我知道如何显示acf的价值,但我如何比较存储的所有分数,当一家公司有最好的分数时,它将显示一枚金牌。当一家公司获得第二好成绩时,它将展示一枚银牌,以此类推。

    我都在脑子里想出来了,但有点困在这里怎么做。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Atlas_Gondal    6 年前

    可能有几种方法来处理这个问题。第一个,我想到的很简单。

    尝试以下步骤:

    1. 拉取所有字段
    2. 数组存储
    3. 按升序对数组排序
    4. 显示结果。

    我希望,你对代码有一定的理解,但这里是代码指南…

    <?php 
    
       $fields = get_fields();
       $company_details = array();
    
       if( $fields ): 
    
          foreach( $fields as $name => $value ):
    
            $company_details[ $name ] = $value;
    
    
          endforeach;
    
       endif;
    
       //to sort by company score
       arsort( $company_details );
    
       //loop through the array and display results, like
       foreach( $company_details as $name => $value):
    
          echo "Company name is: " .$name. ". Company Score: " . $value;
    
       endforeach;
    

    附言: 代码未测试,因为其目的是与您共享逻辑。所以,如果有任何错误,请忽略。