【问题标题】:array_multisort inconsistenly returns falsearray_multisort 不一致返回 false
【发布时间】:2014-08-12 18:52:33
【问题描述】:

我有一个奇怪的场景,array_multisort 函数只有在它作用的数组大于它成功作用的前一个数组时才成功返回。

我正在获取大量数据,提取数据的子集,然后对子集进行排序并输出它们。 array_multisort 适用于具有 10 个条目的第一个子集。然后它在接下来的三个具有少于 10 个条目的子集上失败,但在具有 16 个条目的第四个子集上成功。然后它在一个有 18 个条目的子集上成功,但在接下来的 6 个子集上都失败了,这些子集都少于 18 个条目。就这样继续下去,只有当条目数大于最后一次成功排序时才会成功。

在我输出可能有帮助的结果后,我为这两个数组添加了 unset 命令。

        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);

任何指导都将不胜感激。 谢谢

【问题讨论】:

    标签: array-multisort


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2014-04-10
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 2011-11-10
      • 1970-01-01
      • 2021-10-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多