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 に答える