在PHP中对该数组进行排序的最短方法?

时间:2012-12-12 09:39:43

标签: php arrays

我有这个数组:

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)
  ...

我想根据sort_order键对其进行排序,从最低位置开始(在本例中为0)。我知道我可以迭代等等,但最简单的代码是什么呢?

谢谢:)

2 个答案:

答案 0 :(得分:5)

<?php

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

使用PHP7,您应该能够使用太空飞船运营商:

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

答案 1 :(得分:1)

使用usort的单行:

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