PHP多维数组排序

拉斐尔·马丁斯(Rafael Martins)

我正在尝试基于排序此多维数组[sort_order]

我搜索了很多与成功无关的主题

我可以在这里帮忙吗?

目的是对数组进行排序,所以我可以得到以下顺序在阵列:1 - [post_images]2 - [localizacao]3 - [post_title]4 -[category]

提前致谢。

Array
(
    [[#taxonomy_name#]] => Array
        (    
            [post_title] => Array
                (
                    [name] => post_title
                    [show_in_email] => 1
                    [sort_order] => 3
                    [options] => Array
                        (
                            [0] => 
                        )

                )

            [post_images] => Array
                (
                    [name] => post_images 
                    [is_active] => 1
                    [show_on_listing] => 1
                    [show_on_detail] => 1
                    [sort_order] => 1
                    [options] => Array
                        (
                            [0] => 
                        )

                )

            [category] => Array
                (
                    [name] => category
                    [is_require] => 1
                    [is_active] => 1
                    [show_on_listing] => 1
                    [show_on_detail] => 1
                    [show_in_email] => 1
                    [sort_order] => 4
                    [options] => Array
                        (
                            [0] => 
                        )

                )

            [localizacao] => Array
                (
                    [name] => localizacao
                    [label] => Localização
                    [htmlvar_name] => localizacao
                    [sort_order] => 2
                    [options] => Array
                        (
                            [0] => 
                        )

                )

        )

)
卢克·布里格斯

您可能会发现usort有用,它使您可以使用如下的回调函数进行排序:

// The function which will do your comparisons:
function sortOrderCompare ($a, $b) {
    $aOrder = $a['sort_order'];
    $bOrder = $b['sort_order'];

    if ($aOrder == $bOrder) {
        // A and B have the same order
        return 0;
    }else if ($aOrder < $bOrder) {
        //A comes before B 
        return -1;
    }else{
        // B comes before A
        return 1; 
    }

}

usort($array['[#taxonomy_name#]'], "sortOrderCompare");

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章