php中按键值对数组排序

php中按键值对数组排序,php,Php,我是php新手,我不知道数组排序。问题是我需要对下面列出的数组进行排序,以便按其键字段顺序进行排序。表示需要按“1,2,5”排序 数组: Array ( [Apple] => Array ( [name] => Apparel & Accessories [order] => 5 ) [Bannana] => Array

我是php新手,我不知道数组排序。问题是我需要对下面列出的数组进行排序,以便按其键字段顺序进行排序。表示需要按“1,2,5”排序

数组:

Array
(
    [Apple] => Array
        (
            [name] => Apparel & Accessories                 
            [order] => 5
        )

    [Bannana] => Array
        (
            [name] => Business Stationary
            [order] => 1
        )

    [Orenge] => Array
        (
            [name] => Business Cards
            [order] => 2
        )

)
如何按顺序对该数组进行排序

需要显示如下内容:

Array
    (
        [Bannana] => Array
            (
                [name] => Business Stationary                   
                [order] => 1
            )

        [Orenge] => Array
            (
                [name] => Business Cards
                [order] => 2
            )

        [apple] => Array
            (
                [name] => Apparel & Accessories 
                [order] => 5
            )

    )

这应该适合您:

<?php

    $array = array(
                "Apple" => array(
                        "name" => "Apparel & Accessories",                 
                        "order" => 5
                    ),

                "Bannana" => array(
                        "name" => "Business Stationary",
                        "order" => 1
                    ),

                "Orenge" => array (
                        "name" => "Business Cards",
                        "order" => 2
                    )

            );


    function sortByOrder($a, $b) {
        return $a['order'] - $b['order'];
    }

    usort($array, 'sortByOrder');   


    print_r($array);

?>

这应该适合您:

<?php

    $array = array(
                "Apple" => array(
                        "name" => "Apparel & Accessories",                 
                        "order" => 5
                    ),

                "Bannana" => array(
                        "name" => "Business Stationary",
                        "order" => 1
                    ),

                "Orenge" => array (
                        "name" => "Business Cards",
                        "order" => 2
                    )

            );


    function sortByOrder($a, $b) {
        return $a['order'] - $b['order'];
    }

    usort($array, 'sortByOrder');   


    print_r($array);

?>
建议您使用。例如:

$arr = array
(
    "Apple" => array
    (
        "name" => "Apparel & Accessories" ,
        "order" => 5
    ),

    "Bannana" => array
    (
        "name" => "Business Stationary",
        "order" => 1
    ),

    "Orenge" => array
    (
        "name" => "Business Cards",
        "order" => 2
    )

);


function custom_sort($a, $b)
{
    if ($a['order']==$b['order']) return 0;
    return ($a['order'] < $b['order']) ? -1 : 1;
}

usort($arr, "custom_sort");

print '<pre>';
print_r($arr);
print '</pre>';
建议您使用。例如:

$arr = array
(
    "Apple" => array
    (
        "name" => "Apparel & Accessories" ,
        "order" => 5
    ),

    "Bannana" => array
    (
        "name" => "Business Stationary",
        "order" => 1
    ),

    "Orenge" => array
    (
        "name" => "Business Cards",
        "order" => 2
    )

);


function custom_sort($a, $b)
{
    if ($a['order']==$b['order']) return 0;
    return ($a['order'] < $b['order']) ? -1 : 1;
}

usort($arr, "custom_sort");

print '<pre>';
print_r($arr);
print '</pre>';

Usort函数来了

function sortbyorder($a, $b) {
    return $a['order'] > $b['order']; 
}
usort ($array, 'sortbyorder');
更多信息请点击此处: 致以最良好的祝愿

也可以是:


Usort函数来了

function sortbyorder($a, $b) {
    return $a['order'] > $b['order']; 
}
usort ($array, 'sortbyorder');
更多信息请点击此处: 致以最良好的祝愿

也可以是:


最好的答案是,$a['order']-$b['order']的技巧不错。顺便说一句:我不知道php小/大是否基于差分计算,但这是:返回$a['order']>$b['order'];这只是一个逻辑运算符,而不是数学运算符:。@JacekKowalewski你是对的,没有想到这一点。凉的没问题,如果你愿意,你可以更新你的答案,你是第一个,这只是一个真正学究式的更新;。最好的问候,+1来自我:。最好的答案,很好的技巧$a['order']-$b['order']。顺便说一句:我不知道php小/大是否基于差分计算,但这是:返回$a['order']>$b['order'];这只是一个逻辑运算符,而不是数学运算符:。@JacekKowalewski你是对的,没有想到这一点。凉的没问题,如果你愿意,你可以更新你的答案,你是第一个,这只是一个真正学究式的更新;。向我致以最良好的问候,+1:。Thx用于upvote,但是Rizier123答案返回$a['order']-$b['order']更干净:。使用更干净的解决方案更新:PThx用于upvote,但是Rizier123答案返回$a['order']-$b['order']更干净:。使用更干净的解决方案更新:P