ใช้ usort()
ตัวอย่าง ( ไม่รู้ต้องการแบบนี้หรือเปล่า )
<?php
$member[1]['name'] = 'usr001';
$member[1]['battle'] = 100 ;
$member[2]['name'] = 'usr002';
$member[2]['battle'] = 300 ;
$member[3]['name'] = 'usr003';
$member[3]['battle'] = 200 ;
$member[4]['name'] = 'usr004';
$member[4]['battle'] = 100 ;
echo '<pre>';
print_r ( $member );
echo '</pre>';
function mycmp($a, $b)
{
return $a['battle'] - $b['battle'] ;
}
usort( $member, 'mycmp' );
echo '<hr /><pre>';
print_r ( $member );
echo '</pre>';
?>
รายละเอียด php sorts แบบต่างๆ
http://www.php.net/manual/en/array.sorting.php 
ิีิbubble sort ก็คือสอง loops ลูปแรกพยายามหาสมาชิกที่มีค่ามากสุุด มาไว้ท้าย จึงทำลูปซ้อนเพื่อสลับตำแหน่งไปเรื่อยๆ เพื่อเอาตัวมากสุดไปขวา ลูปต่อมาก็หาค่ามากสุดรองลงมา มาไว้ตำแหน่งรองลงมาเช่นกัน
แต่ใช้ quick sort หรือ merge sort ดีกว่า หาหนังสือ หรืออ่านเว็บ Com Sci หน่อยก็ดีนะครับ สำหรับโครงการอันยิ่งใหญ่