Есть записи в БД такого вида:
Код (Text):
INSERT INTO `tokens` (`id`, `ticker`, `symbol`, `price`, `f_long`, `f_short`, `s_long`, `s_short`, `volume_5m`, `volatility`) VALUES (22, ‘AXS’, ‘AXSUSDT’, 29.74, ‘30.38000;6957;211353;2.2;08.05.2022 16:46:33;0’, ‘29.00000;11837;343273;2.4;08.05.2022 16:34:34;0’, ‘29.96000000;3685.37000000;110413;0.8;08.05.2022 16:47:39;0’, ‘29.54000000;4505.01000000;133077;0.6;08.05.2022 16:44:33;0’, ‘7834.94000000;233522.11020000’, 0.57), (23, ‘BAKE’, ‘BAKEUSDT’, 0.5101, », », », », ‘40769.10000000;20803.43380000’, 0.39), (24, ‘BAL’, ‘BALUSDT’, 12.725, », », », », ‘253.24000000;3219.11980000’, 0.16), (25, ‘BAND’, ‘BANDUSDT’, 2.7832, », », », », ‘857.90000000;2390.26030000’, 0.32), (26, ‘BAT’, ‘BATUSDT’, 0.5528, », », », ‘0.54920000;299874.00000000;164690;0.5;08.05.2022 16:46:42;0’, ‘20586.00000000;11396.99290000’, 0.31),Таким образом я раскладываю записи по массивам:
PHP:
$query_select = mysqli_query($db, «SELECT * FROM `tokens` ORDER BY `f_long` DESC, `f_short` DESC, `s_long` DESC, `s_short` DESC, `id`»); $count = 0; { $coins[$count][‘ticker’] = $select[‘ticker’]; $coins[$count][‘symbol’] = $select[‘symbol’]; $coins[$count][‘price’] = $select[‘price’]; $coins[$count][‘f_long’] = $select[‘f_long’]; $coins[$count][‘f_short’] = $select[‘f_short’]; $coins[$count][‘s_long’] = $select[‘s_long’]; $coins[$count][‘s_short’] = $select[‘s_short’]; $coins[$count][‘volume_5m’] = $select[‘volume_5m’]; $count++; }Первым шагом мне необходимо отформатировать только те записи, где есть данные в полях f_long, f_short, s_long, s_short, то есть отсортировать в начало те элементы, в которых есть данные хотя бы в одном из столбцов. Вторым шагом я не пойму, как мне сортировать данные внутри этих полей. Там данные такого вида разделенные через точку с запятой (
Код (Text):
0.0019350;103368480;200018;0.8;11.04.2022 08:50:03;0Потом через explode я делю эти параметры и они у меня получаются отдельно и я их вывожу на экран. Но теперь стоит задача, отсортировать массив $coins по 4 значению в этой записи, в данном случае это 0.8.
Как отсортировать таким способом, чтобы первыми элементами были значения, в полях f_long, f_short, s_long, s_short если содержится хоть какая-то информация (не пустое) и чтобы они были отсортированы по 4-му значению этих записей (0.0019350;103368480;200018;0.8;11.04.2022 08:50:03;0) по убыванию.
Пробую делать так:
PHP:Получаю вроде сортировку начиная с столбца f_long правильно, но так же выдаются ошибки Warning: Undefined array key 2 in /var/www/domains/site.ru/index.php on line 62 что указывает на строчку if ($a[2] == $b[2])
Но таким образом, я сортирую только поля этого столбца, а мне нужно собрать со всех 4-х столбцов (f_long f_short s_long s_short) и их выстроить по убыванию 4-ого значения
2-13 Строки замени на
PHP:
не пихай все в одну ячейку, если нужна сортировка и т.д. Действуй.
Похожие записи:
- Центр обновления Windows: мы не можем завершить обновление. Попробуйте перезагрузить устройство, и мы попробуем еще раз. Код ошибки: (0x8007000e)
- Помогите настроить .htaccess
- галерея из папки на PHP
- Класс, показывающий формат, аналогичный var_dump v1.0.5
- Я не могу заставить свой туннель WIreguard завершить рукопожатие