按值

时间:2016-03-18 10:35:06

标签: php arrays sorting

我有基于键的多维数组:

Array
(
[Current Assets] => Array
    (
        [anxtureNo] => 
        [weightage] => 7
        [groupID] => 550ba6785c913193058b4567
        [currentYearBalance] => 0
        [previousYearBalance] => 0
        [subGroupLevel1] => Array
            (
                [Bank Accounts] => Array
                    (
                        [name] => Bank Accounts
                        [anexture] => 10
                        [subGroupID] => 550ba6935c9131c60d8b4567
                        [currentYearBalance] => 46494482.51
                        [previousYearBalance] => 0
                    )

                [Cash In Hand] => Array
                    (
                        [name] => Cash In Hand
                        [anexture] => 9
                        [subGroupID] => 550ba7095c91316d0f8b4567
                        [currentYearBalance] => 116465
                        [previousYearBalance] => 0
                    )

                [Loan and advances & other current assets] => Array
                    (
                        [name] => Loan and advances & other current assets
                        [anexture] => 8
                        [subGroupID] => 550ba8d25c9131c60d8b4569
                        [currentYearBalance] => 6158321.5
                        [previousYearBalance] => 0
                        [innerSubGroup] => Array
                            (
                                [name] => Advances to Staff (SWF)
                                [anexture] => 32
                                [subGroupID] => 55cd972ac3acc3e40f8b4567
                                [currentYearBalance] => 6158321.5
                                [previousYearBalance] => 0
                            )

                    )

                [Stock-in-hand] => Array
                    (
                        [name] => Stock-in-hand
                        [anexture] => 
                        [subGroupID] => 550ba9c05c9131c60d8b456a
                        [currentYearBalance] => 0
                        [previousYearBalance] => 0
                    )

                [Sundry Debtors] => Array
                    (
                        [name] => Sundry Debtors
                        [anexture] => 30
                        [subGroupID] => 550baf515c913193058b4569
                        [currentYearBalance] => 1172626.36
                        [previousYearBalance] => 0
                    )

                [Inventories] => Array
                    (
                        [name] => Inventories
                        [anexture] => 7
                        [subGroupID] => 56e98c79c3acc3fa438b4567
                        [currentYearBalance] => 825250
                        [previousYearBalance] => 0
                    )

                [Fixed Deposits with banks] => Array
                    (
                        [name] => Fixed Deposits with banks
                        [anexture] => 18
                        [subGroupID] => 56ea75cfc3acc3d52f8b4567
                        [currentYearBalance] => 63527618
                        [previousYearBalance] => 0
                    )

            )

        [grandTotalTopLevelCurrentYear] => 118294763.37
        [grandTotalTopLevelPreviousYear] => 0
    )

[Fixed Assets] => Array
    (
        [anxtureNo] => 
        [weightage] => 4
        [groupID] => 550bb05a5c91316d0f8b4568
        [currentYearBalance] => 0
        [previousYearBalance] => 0
        [subGroupLevel1] => Array
            (
                [Furniture/Fixture] => Array
                    (
                        [name] => Furniture/Fixture
                        [anexture] => 
                        [subGroupID] => 5567fb89c3acc350298b4567
                        [currentYearBalance] => 3684615
                        [previousYearBalance] => 0
                    )

                [Vehicle] => Array
                    (
                        [name] => Vehicle
                        [anexture] => 
                        [subGroupID] => 5567fbbdc3acc375298b4567
                        [currentYearBalance] => 499318
                        [previousYearBalance] => 0
                    )

                [Building] => Array
                    (
                        [name] => Building
                        [anexture] => 
                        [subGroupID] => 5567fbd7c3acc373298b4567
                        [currentYearBalance] => 23090937.65
                        [previousYearBalance] => 0
                    )

                [Plant & Machinery] => Array
                    (
                        [name] => Plant & Machinery
                        [anexture] => 
                        [subGroupID] => 5567fc55c3acc3c7298b4567
                        [currentYearBalance] => 1901120
                        [previousYearBalance] => 0
                    )

                [School Equipments] => Array
                    (
                        [name] => School Equipments
                        [anexture] => 
                        [subGroupID] => 55782b51c3acc387788b4567
                        [currentYearBalance] => 3317433.23
                        [previousYearBalance] => 0
                    )

                [Electrical Equipments] => Array
                    (
                        [name] => Electrical Equipments
                        [anexture] => 
                        [subGroupID] => 557adb86c3acc331218b4567
                        [currentYearBalance] => 668285
                        [previousYearBalance] => 0
                    )

                [Land] => Array
                    (
                        [name] => Land
                        [anexture] => 
                        [subGroupID] => 5586c173c3acc3b82a8b4567
                        [currentYearBalance] => 6202505
                        [previousYearBalance] => 0
                    )

            )

        [grandTotalTopLevelCurrentYear] => 39364213.88
        [grandTotalTopLevelPreviousYear] => 0
    )

[Current Liabilities & Provisions] => Array
    (
        [anxtureNo] => 12
        [weightage] => 34
        [groupID] => 559a5c55c3acc3d92b8b4567
        [currentYearBalance] => 5398744.3
        [previousYearBalance] => 0
        [grandTotalTopLevelCurrentYear] => 5398744.3
        [grandTotalTopLevelPreviousYear] => 0
    )   

)

此代码根据权重对其进行排序

foreach ($finalArrayForAssetsSide as $k => $v) {
        $sort['weightage'][$k] = $v['weightage'];
    }
    if (count($finalArrayForAssetsSide) > 0) {
        array_multisort($sort['weightage'], SORT_ASC, $finalArrayForAssetsSide);
    }

我想根据" weightage"进行排序。每个Groups.But得到以下警告:

  

警告:array_multisort():/var/www/edubolderp/src/Edu/AccountBundle/Document/BudgetRepository.php第3318行中的数组大小不一致

请指导缺少的内容。提前致谢

1 个答案:

答案 0 :(得分:1)

只需使用usort并提供有效的排序功能。不需要array_multisort

usort($finalArrayForAssetsSide, function($a, $b) {
   return $a['weightage'] - $b['weightage'];
});
相关问题