0

我有这个数组:

array
  0 => 
    array
      'action_operator' => string 'by_fixed' (length=8)
      'action_amount' => string '10.0000' (length=7)
      'sort_order' => string '0' (length=1)
  1 => 
    array
      'action_operator' => string 'by_percent' (length=10)
      'action_amount' => string '10.0000' (length=7)
      'sort_order' => string '1' (length=1)
  ...

我想根据从最低(在本例中为 0)开始的 sort_order 键对其进行排序。我知道我可以迭代等等,但是实现这一目标的最短代码是什么?

谢谢 :)

4

2 回答 2

5
<?php

usort( $aData, function( $a, $b ) {
  return ($a['sort_order'] < $b['sort_order'] ? 1 : -1);
} );

使用 PHP7,您应该能够使用 spaceship 运算符:

usort( $aData, function( $a, $b ) {
  return $a['sort_order'] <=> $b['sort_order'];
} );
于 2012-12-12T09:43:40.990 回答
1

使用 usort 的单行:

usort($array, function($a, $b) { return $a['sort_order'] - $b['sort_order']; });
于 2012-12-12T09:46:12.383 回答