Как отсортировать массив на основе определенного поля в массиве?

Как я могу отсортировать массив на основе двух конкретных значений в массиве? Например:

$arr = array( array('a' => array('field1' => 'Abc', 'field2' => 'Def'), 'b' => 0) array('a' => array('field1' => 'Ghi', 'field2' => 'Jkl'), 'b' => 0) ); 

Я хочу отсортировать этот массив на основе переменной $arr[$i]['a']['field1'] . Как я могу это сделать?

Попробуйте:

 function cmp($a, $b) { if ($a['a']['field1'] == $b['a']['field1'] ) return 0; return ( $a['a']['field1'] < $b['a']['field1'] ) ? -1 : 1; } uasort($arr, 'cmp'); 

Это просто небольшое изменение в примере, представленном на странице документации PHP: http://www.php.net/manual/en/function.uasort.php

Создайте свою собственную функцию сравнения и используйте uasort

http://us.php.net/manual/en/function.uasort.php

в этом конкретном случае (сортировка по самому первому элементу самого первого подмассива) достаточно простого sort ().