Сортировка массива несколькими ключами в определенном порядке

Я хочу отсортировать следующий массив несколькими ключами в следующем порядке: сначала «тип», затем «продукт» и, наконец, «имя». Это довольно легко сделать с помощью usort, хотя мои клиенты хотят, чтобы «продукт» сортировался в определенном порядке: «Степлер», «Binder», «Book».

$arr = array( array( 'type' => 'School', 'product' => 'Book', 'name' => 'My book', 'data' => '...' ), array( 'type' => 'Job', 'product' => 'Stapler', 'name' => 'My stapler', 'data' => '...' ), array( 'type' => 'Personal', 'product' => 'Binder', 'name' => 'My binder', 'data' => '...' ), array( 'type' => 'School', 'product' => 'Book', 'name' => 'My book', 'data' => '...' ) ); 

Кто-нибудь знает умный способ сделать это?