基于数组数组内的EYE_SIZE以数字方式对数组进行排序

时间:2013-09-06 23:11:04

标签: php arrays sorting

我有一个像这样的数组:

array(18) {
  [0]=>
  array(3) {
    ["ID"]=>
    string(5) "23"
    ["EYE_SIZE"]=> "203.C"
  }
  [1]=>
  array(2) {
    ["ID"]=>
    string(5) "1"
    ["EYE_SIZE"]=> "231.2A"
  }
  [2]=>
  array(2) {
    ["ID"]=>
    string(5) "32"
    ["EYE_SIZE"]=> "231.2B"
  }
  [3]=>
  array(3) {
    ["ID"]=>
    string(5) "90"
    ["EYE_SIZE"]=> "201A"
  }
  ... and so on
}

我希望数组中的数组根据EYE_SIZE值按字母顺序排序。例如,如果数组的EYE_SIZE值为201A,我希望它在EYE_SIZE为203A,201B或201.2A的数组之前。

PHP中是否有可以帮助我实现此功能的功能?

1 个答案:

答案 0 :(得分:1)

您可以使用usort并编写自己的比较函数。

function cmp($a, $b)
{
    return strcmp($a["EYE_SIZE"], $b["EYE_SIZE"]);
}

usort($your_array, "cmp");

或关闭

usort($your_array, function($a, $b){
    return strcmp($a["EYE_SIZE"], $b["EYE_SIZE"]);
});