1. Bu sıralama işlemini direkt SQL sorgusu ile de yapabilirsiniz. MySQL da bir sürü string fonksiyonları vardır (bkz. http://dev.mysql.com/doc/refman/5.0/...functions.html). Select kısmında gerekli işlemleri yaparak order by ile istediğiniz gibi sıralayabilirsiniz.

2. Yok ben veriler tek tek çekiyorum. Sıralamayı PHP ile yapmak istiyorum derseniz. Alttaki örnek fonksiyonu kullanabilirsiniz. Veri yapınızın uyacağını umuyorum

/* db den çekilen ve puan verilen veriler */
$data = array(

	/* 1. veri */
	array(
		'title' => 'Title bir',
		'site' => 'Site bir',
		'point' => 4,
	),

	/* 2. veri */
	array(
		'title' => 'Title iki',
		'site' => 'Site iki',
		'point' => 2,
	),

	/* 3. veri */
	array(
		'title' => 'Title üç',
		'site' => 'Site üç',
		'point' => 9,
	),

);

// http://www.php.net/manual/en/function.sort.php#99700
function array_sort($array, $on, $order='SORT_DESC')
{
  $new_array = array();
  $sortable_array = array();

  if (count($array) > 0) {
	  foreach ($array as $k => $v) {
		  if (is_array($v)) {
			  foreach ($v as $k2 => $v2) {
				  if ($k2 == $on) {
					  $sortable_array[$k] = $v2;
				  }
			  }
		  } else {
			  $sortable_array[$k] = $v;
		  }
	  }

	  switch($order)
	  {
		  case 'SORT_ASC':
			  asort($sortable_array);
		  break;
		  case 'SORT_DESC':
			  arsort($sortable_array);
		  break;
	  }

	  foreach($sortable_array as $k => $v) {
		  $new_array[] = $array[$k];
	  }
  }
  return $new_array;
}


echo '<pre>';
print_r(array_sort($data, 'point', 'SORT_DESC'));