简体   繁体   English

使用version_compare对多维数组进行排序

[英]Sort multidimensonal array with version_compare

How do you sort a multidimensonal array with usort version_compare? 如何使用usort version_compare对多维数组进行排序?

I want to order this array with version_compare based on the version value 我想根据版本值使用version_compare来订购此数组

array(
    array('id' => 1, 'version' => '1.3'),
    array('id' => 2, 'version' => '1.3.1'),
    array('id' => 3, 'version' => '1.3.2'),
    array('id' => 4, 'version' => '1.3.2-RC1'),
    array('id' => 5, 'version' => '1.3.2-RC2'),
);

expected order after ordering 订购后的预期订单

  1. 1.3.2 1.3.2
  2. 1.3.2-RC2 1.3.2-RC2
  3. 1.3.2-RC1 1.3.2-RC1
  4. 1.3.1 1.3.1
  5. 1.3 1.3

Here is the comparator with usort : 这是具有usort的比较器:

usort($arr, function($a,$b) {
    return -1 * version_compare ( $a['version'] , $b['version'] );
});

DEMO DEMO

Read more: 阅读更多:

usort($a, function($a1, $a2) { return version_compare($a1['version'], $a2['version']); });

$a = array_reverse($a);

Should work. 应该管用。

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

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