0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 114 Просмотров
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Привет! Долго думал как сформулировать заголовок, ничего лучше не придумал, не пинайте сильно. Вопрос в следующем, у меня есть массив с результатами конкурса. Выглядит так:
Код
$arr = array(
    array('team' => 'Солнышки', 'balls' => 8),
    array('team' => 'Зайчики', 'balls' => 5),
    array('team' => 'Пираты', 'balls' => 3)
);

Мне нужно создать новый массив, в который бы добавились места, занятые в конкурсе в зависимости от количества балов (максимальное кол-во баллов - 1 место, поменьше - 2, еще меньше - 3 и так далее, чтобы получить вот такой новый массив:
Код
$new_arr = array(
    array('team' => 'Солнышки', 'balls' => 8,'mesto' => 1),
    array('team' => 'Зайчики', 'balls' => 5,'mesto' => 2),
    array('team' => 'Пираты', 'balls' => 3,'mesto' => 3)
);
Команд может быть сколько угодно, поэтому привязаться к кол-ву мест нельзя, как это делают с рейтингом в виде звезд (от 1 до 5).
Заранее благодарю за примеры с кодом! Сам не осиливаю))
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
*

sivers

  • Живу я здесь
  • 2469
  • 336 / 0
Сперва отсортируйте массив по баллам по убыванию с помощью функции https://www.php.net/usort (там примеры есть).
Вторым действием пройдитесь по массиву и добавьте место, в качестве значения - индекс+1

Второй вариант - вытянуть массив баллов, отсортировать по убыванию и флипнуть их с индексами. В итоге в качестве индексов будут баллы, а в качестве значений - места (на единицу меньше):
$balls = array_column($new_arr, 'balls');
rsort($balls);
$mesta = array_flip($balls);

здесь только будет нюанс с местами при одинаковом кол-ве баллов, но там уже посмотрите что в итоге получится. Первый вариант надежней.
На связи в telegram @sivers
sivers @ inbox . ru
https://sivers.su/
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Жутко туплю с перебором массива

Автор Шмайсер

Ответов: 4
Просмотров: 330
Последний ответ 10.10.2022, 19:19:12
от Шмайсер
Сортировка элементов массива по алфавиту JS JQ

Автор alex_next

Ответов: 9
Просмотров: 2792
Последний ответ 23.07.2015, 10:59:23
от alex_next
Выборка данных с использование массива в качестве условия

Автор AlekVolsk

Ответов: 2
Просмотров: 933
Последний ответ 10.01.2015, 00:27:06
от AlekVolsk