普通はusort、大きな配列の時はarray_multisort使った方が速い。
function myCompare($x, $y) {
 if ($x[1] == $y[1]) return 0;
 return ($x[1] < $y[1]) ? -1 : 1;
}
function myExplode($z) {
 return explode('<>', $z);
}

$a = array('田中太郎<>12<>りんご<>','山田太郎<>16<>なし<>','吉田太郎<>12<>すいか<>');

$b = array('name' => array(), 'year' => array(), 'favorite' => array());
foreach ($a as $str) {
 list($b['name'][], $b['year'][], $b['favorite'][], ) = myExplode($str);
}
array_multisort($b['year'], $b['name'], $b['favorite']);

$c = array_map('myExplode', $a);
usort($c, 'myCompare');

var_dump($a, $b, $c);