0

私は次のような配列を持っています:

array(
  (int) 0 => array(
    'SomeItem' => array(
        'id' => '1',
        'number' => '3',
        'created' => '2012-07-20 23:34:00',
        'modified' => '2012-07-20 23:34:00'
      )
  )
  (int) 1 => array(
    'SomeItem' => array(
        'id' => '1',
        'number' => '6',
        'created' => '2012-07-20 23:34:00',
        'modified' => '2012-07-20 23:34:00'
    )
  )
)

構造を維持したまま、番号の昇順で並べ替えるために、「番号」で並べ替えるにはどうすればよいですか。

ありがとうございました!

4

1 に答える 1

1

クロージャーの使用:

usort($array, function($a, $b)
        {
            if ($a['SomeItem']['number'] == $b['SomeItem']['number'])
                return 0;

            return ($a['SomeItem']['number'] < $b['SomeItem']['number']) ? -1 : 1;
        }
    );  

それなし

function cmp($a, $b)
{
    if ($a['SomeItem']['number'] == $b['SomeItem']['number'])
        return 0;

    return ($a['SomeItem']['number'] < $b['SomeItem']['number']) ? -1 : 1;
}
usort($array, 'cmp');
于 2012-07-25T02:55:25.207 に答える