Сортировать массив без замены элементов индекса в php

Как отсортировать массив без замены элемента индекса? Когда я сортирую отсутствующий массив по убыванию, тогда значение индексации будет заменено, есть ли способ отсортировать массив по убыванию и сохранить исходные индексы?

// Get Current Session
$Res_Sess = mysql_query("SELECT sessionid from tbl_session WHERE status=1 ORDER BY sessionid desc limit 1");
$Row_Sess = mysql_fetch_array($Res_Sess);
$Session = $Row_Sess[0];

// Get Batch
$Res_Bat = mysql_query("SELECT batchid,batchname,code FROM tbl_batch where status=1 and batchid!=12 ORDER BY batchid asc");
$allAbsent = array();
$indexes = 0;

while ($Row_Bat = mysql_fetch_array($Res_Bat)) {
    $Batch = $Row_Bat['batchid'];
    $Bat_Code = $Row_Bat['code'];
    $qatt1 = mysql_query("select count(id),rollno from tbl_attendance where batchid = '$Batch' and sessionid = '$Session' GROUP BY rollno");
    $array = array();
    $array_rollno = array();
    $i1 = 0;
    while ($Row_T = mysql_fetch_array($qatt1)) {
        $array[$i1] = $Row_T[0];
        $array_rollno[$i1] = $Row_T[1];
        $i1++;
    }

    $maxValue = max($array);
    $roll_no = $array_rollno;
    foreach($roll_no as $roll) {
        $allRollno[$indexes] = $roll;

        // Absent - Attendance
        $Abatt4 = mysql_query("select count(id) from tbl_attendance where rollno = '$roll' and batchid = '$Batch' and sessionid = '$Session' and attend = 0 GROUP by rollno");

        if ($Row_A4 = mysql_fetch_array($Abatt4)) {
            $allAbsent[$indexes] = round(($Row_A4[0] / $maxValue * 100) , 2);
        } else {
            $allAbsent[$indexes] = 0;
        }

        $indexes++;
    }

    print_r($allAbsent);
    echo "<br /><br />";
    $tabsent = $allAbsent;
    rsort($tabsent);
    foreach($tabsent as $key => $val) {
        echo "[$key] => $val\n";
    }

Все функции сортировки массивов PHP будут переназначать индексы после сортировки. Почему бы вместо этого не отсортировать SQL-запрос? Это должно упорядочить данные еще до того, как вы назначите их массиву.

tshimkus 21.02.2019 12:35

Не могли бы вы разместить отсортированные данные в очереди. На самом деле я хочу знать, какой тип массива вы используете. Ассоциативный массив?

amba patel 21.02.2019 12:45
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
2
139
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Быстрый поиск Google обычно помогает...

arsort($tabsent);

Из руководство:

arsort — Sort an array in reverse order and maintain index association

Другие вопросы по теме