简体   繁体   English

按PHP中的值排序多维数组

[英]sort multidimensional array by values in PHP

I have an array fetched from mysql database tables of type. 我从类型的mysql数据库表中获取了一个数组。 I want to sort it in order of particular value. 我想按特定价值排序。

$arr1=array(array(12, 8, 5, 34),
        array(54, 87, 32, 10),
        array(23, 76, 98, 13),
        array(53, 16, 24, 19));

How can i sort it by value? 我怎样才能按价值排序? Like sorting by 2nd value should result to. 像第二个值的排序应该导致。

$arr1=array(array(12, 8, 5, 34),
        array(53, 16, 24, 19),
        array(23, 76, 98, 13),
        array(54, 87, 32, 10));

I like to use usort to solve these problems. 我喜欢用usort来解决这些问题。

$sortKey = 1;
usort($arr1, function($a, $b) use($sortKey){
    return $a[$sortKey] - $b[$sortKey];
});

Got to agree with @RocketHazmat, array_multsort is a royal pain in the backside. 同意@RocketHazmat, array_multsort是背后的皇家痛苦。 usort is much easier to follow but I thought I'd have a go anyway: usort更容易理解,但我还是认为我还要去:

$sortKey = 1;
array_multisort(array_map(function($v) use($sortKey){
    return $v[$sortKey];
}, $arr1), $arr1);

It only took 20 minutes... :( 它花了20分钟...... :(

Here's a demo : http://ideone.com/2rZYIz 这是一个演示http//ideone.com/2rZYIz

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM