按值排序多维数组 [英] Sort Multi-dimensional Array by Value

查看:162
本文介绍了按值排序多维数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


  

可能重复:结果
  我如何排序在PHP <多维数组/ p>

我怎么可以排序这个数组由序键的值?即使值是目前的顺序,它们将不会总是

 阵列

    [0] =&GT;排列
        (
            [主题标签] =&GT; a7e87329b5eab8578f4f1098a152d6f4
            [标题] =&GT;花
            [为了] =&GT; 3
        )    [1] =&GT;排列
        (
            [主题标签] =&GT; b24ce0cd392a5b0b8dedc66c25213594
            [标题] =&GT;自由
            [为了] =&GT; 2
        )    [2] =&GT;排列
        (
            [主题标签] =&GT; e7d31fc0602fb2ede144d18cdffd816b
            [标题] =&GT;准备
            [为了] =&GT; 1
        )


解决方案

尝试 usort :如果你仍然在PHP 5.2或更早版本,你就必须定义排序功能第一:

 函数sortByOrder($ A,$ B){
    返回$ a ['订单'] - $ B ['秩序'];
}usort($ myArray的,'sortByOrder');

在PHP 5.3开始,您可以使用匿名函数:

  usort($ myArray的,功能($ A,$ B){
    返回$ a ['订单'] - $ B ['秩序'];
});

和最后用PHP 7,您可以使用飞船运营商:

  usort($ myArray的,功能($ A,$ B){
    返回$ a ['订单'&LT; = GT; $ B ['秩序'];
});

Possible Duplicate:
How do I Sort a Multidimensional Array in PHP

How can I sort this array by the value of the "order" key? Even though the values are currently sequential, they will not always be.

Array
(
    [0] => Array
        (
            [hashtag] => a7e87329b5eab8578f4f1098a152d6f4
            [title] => Flower
            [order] => 3
        )

    [1] => Array
        (
            [hashtag] => b24ce0cd392a5b0b8dedc66c25213594
            [title] => Free
            [order] => 2
        )

    [2] => Array
        (
            [hashtag] => e7d31fc0602fb2ede144d18cdffd816b
            [title] => Ready
            [order] => 1
        )
)

解决方案

Try a usort: If you are still on PHP 5.2 or earlier, you'll have to define a sorting function first:

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

usort($myArray, 'sortByOrder');

Starting in PHP 5.3, you can use an anonymous function:

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

And finally with PHP 7 you can use the "spaceship operator":

usort($myArray, function($a, $b) {
    return $a['order'] <=> $b['order'];
});

这篇关于按值排序多维数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆