ACF попал в топ-10 по значению поля

Я уже некоторое время пользуюсь ACF и подумал, что это будет проще, но не могу понять, как это сделать правильно …

Я пытаюсь создать какой-нибудь трофейный кабинет. Таким образом, каждая компания имеет баллы, которые хранятся в ACF под названием «company_score».

Например, у нас есть компании под названием Microsoft, Facebook и Twitter. У них всех есть оценка:

  • Facebook = 200000
  • Microsoft = 900000
  • Twitter = 100000

Таким образом, топ 3 будет как

  • 1) Microsoft
  • 2) Facebook
  • 3) Твиттер

Я знаю, как отобразить значение ACF, но как сравнить все результаты, которые хранятся, и когда у компании будет лучший результат, она получит золотую медаль. Когда у компании будет второй лучший результат, она получит серебряную медаль и так далее.

Я все понял это в моей голове, но немного застрял здесь, как это сделать.

0

Решение

Там может быть несколько подходов, чтобы справиться с этим. Первое, что приходит мне в голову, очень просто.

Попробуйте эти шаги:

  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;

PS: Код не тестировался, потому что целью было поделиться с вами логикой. Поэтому игнорируйте, если есть какая-либо ошибка.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector