array_multisort несовместимо возвращает false

У меня есть странный сценарий, когда функция array_multisort успешно возвращается только в том случае, если массив, с которым она работает, больше предыдущего массива, с которым она действовала успешно.

Я беру большой набор данных, извлекаю подмножества данных, затем сортирую подмножества и выводю их. array_multisort работает с первым подмножеством, которое имеет 10 записей. Затем происходит сбой в следующих трех подмножествах, которые имеют менее 10 записей, но преуспевает в четвертом подмножестве, которое имеет 16 записей. Затем он преуспевает в подмножестве с 18 записями, но терпит неудачу в следующих 6 подмножествах, которые все имеют менее 18 записей. Это продолжается так, только успешно, когда количество записей больше, чем последний успешный сортировки.

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

        for($k=0; $k<$num_category_skaters; $k++) 
            {
                $skater_sort[$k][FirstName] = $category_skaters[$k][FirstName];
                $skater_sort[$k][LastName] = $category_skaters[$k][LastName];
                $skater_sort[$k][Gender] = $category_skaters[$k][Gender];
                $skater_sort[$k][PartnerFirstName] = $category_skaters[$k][PartnerFirstName];
                $skater_sort[$k][PartnerLastName] = $category_skaters[$k][PartnerLastName];
            }

//print_r($skater_sort);

    // Obtain a list of columns
        foreach ($skater_sort as $key => $row) 
            {
            $FirstName[$key]  = $row['FirstName'];
            $LastName[$key] = $row['LastName'];
            $PartnerFirstName[$key]  = $row['PartnerFirstName'];
            $PartnerLastName[$key] = $row['PartnerLastName'];
            $BirthDate[$key] = $row['BirthDate'];
            $Gender[$key] = $row['Gender'];
            // now sort the columns
            }
            $error=array_multisort($LastName, SORT_ASC, $FirstName, SORT_ASC, $PartnerFirstName, SORT_ASC, $PartnerLastName, SORT_ASC, $Gender, SORT_ASC, $skater_sort);

Любое руководство будет оценено. Спасибо

1 ответ

Ну, я решил проблему, но я действительно не знаю причину поведения. Код, который последовал за командой array_multisort, прошел через массив с циклом for и отобразил данные массива на экране. Когда я взял этот код, переместил его в функцию и вызвал функцию, array_multisort работал нормально. Это не имеет смысла для меня, так как код дисплея следовал за мультисортировкой, но, по крайней мере, проблема решена.

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