Home  >  Article  >  Backend Development  >  php array sorting

php array sorting

WBOY
WBOYOriginal
2016-07-06 13:52:321010browse

How to sort the field menu_order in the array below? ? ? ? ? ?

Array
(

<code>[menu] => Array
    (
        [0] => Array
            (
                [menu_name] => 首页
                [login_menu_name] => 
                [icon] => glyphicon glyphicon-home
                [menu_href] => /api/1ek2n5gsut/shop/
                [login_menu_href] => /api/1ek2n5gsut/shop/
                [bind_action_attr] => 0
                [menu_order] => 4
            )

        [1] => Array
            (
                [menu_name] => 我要分销
                [login_menu_name] => 分销中心
                [icon] => glyphicon glyphicon-indent-left
                [menu_href] => /api/1ek2n5gsut/distribute/join/
                [login_menu_href] => /api/1ek2n5gsut/distribute/
                [bind_action_attr] => 1
                [menu_order] => 3
            )

        [2] => Array
            (
                [menu_name] => 购物车
                [login_menu_name] => 
                [icon] => glyphicon glyphicon-shopping-cart
                [menu_href] => /api/1ek2n5gsut/shop/cart/
                [login_menu_href] => /api/1ek2n5gsut/shop/cart/
                [bind_action_attr] => 2
                [menu_order] => 1
            )

        [3] => Array
            (
                [menu_name] => 个人中心
                [login_menu_name] => 
                [icon] => glyphicon glyphicon-user
                [menu_href] => /api/1ek2n5gsut/shop/member/
                [login_menu_href] => /api/1ek2n5gsut/shop/member/
                [bind_action_attr] => 0
                [menu_order] => 1
            )

        [4] => Array
            (
                [menu_name] => 分类
                [login_menu_name] => 
                [icon] => glyphicon glyphicon-th-list
                [menu_href] => /api/1ek2n5gsut/shop/3//allcategory/
                [login_menu_href] => /api/1ek2n5gsut/shop/3//allcategory/
                [bind_action_attr] => 0
                [menu_order] => 
            )

    )

[method] => </code>

)

Reply content:

How to sort the field menu_order in the array below? ? ? ? ? ?

Array
(

<code>[menu] => Array
    (
        [0] => Array
            (
                [menu_name] => 首页
                [login_menu_name] => 
                [icon] => glyphicon glyphicon-home
                [menu_href] => /api/1ek2n5gsut/shop/
                [login_menu_href] => /api/1ek2n5gsut/shop/
                [bind_action_attr] => 0
                [menu_order] => 4
            )

        [1] => Array
            (
                [menu_name] => 我要分销
                [login_menu_name] => 分销中心
                [icon] => glyphicon glyphicon-indent-left
                [menu_href] => /api/1ek2n5gsut/distribute/join/
                [login_menu_href] => /api/1ek2n5gsut/distribute/
                [bind_action_attr] => 1
                [menu_order] => 3
            )

        [2] => Array
            (
                [menu_name] => 购物车
                [login_menu_name] => 
                [icon] => glyphicon glyphicon-shopping-cart
                [menu_href] => /api/1ek2n5gsut/shop/cart/
                [login_menu_href] => /api/1ek2n5gsut/shop/cart/
                [bind_action_attr] => 2
                [menu_order] => 1
            )

        [3] => Array
            (
                [menu_name] => 个人中心
                [login_menu_name] => 
                [icon] => glyphicon glyphicon-user
                [menu_href] => /api/1ek2n5gsut/shop/member/
                [login_menu_href] => /api/1ek2n5gsut/shop/member/
                [bind_action_attr] => 0
                [menu_order] => 1
            )

        [4] => Array
            (
                [menu_name] => 分类
                [login_menu_name] => 
                [icon] => glyphicon glyphicon-th-list
                [menu_href] => /api/1ek2n5gsut/shop/3//allcategory/
                [login_menu_href] => /api/1ek2n5gsut/shop/3//allcategory/
                [bind_action_attr] => 0
                [menu_order] => 
            )

    )

[method] => </code>

)

<code><?php
foreach ($menu as $key => $row) {
    $menu_order[$key] = $row['menu_order'];
}

// 将数据根据menu_order升序排列
// 把 $menu 作为最后一个参数,以通用键排序
array_multisort($menu_order, SORT_ASC, $menu);</code>

Reference: http://php.net/manual/ja/function.array-multisort.php

Use custom sorting

<code>usort($menu, function($a, $b) {
    return $a['menu_order'] < $b['menu_order'] ? -1 : 1;
});</code>

Customize sorting. Just find the values ​​of the corresponding nodes and compare them.

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn