array_multisort不一致地返回false

时间:2014-06-22 17:44:40

标签: array-multisort

我有一个奇怪的情况,即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 个答案:

答案 0 :(得分:0)

好吧,我解决了这个问题,但我真的不知道这个行为的原因。 array_multisort命令之后的代码通过for循环遍历数组,并将数组数据回显到屏幕。当我接受该代码并将其移动到一个函数并调用该函数时,array_multisort工作正常。这对我来说没有任何意义,因为显示代码遵循多重排序,但至少问题得到了解决。