Если вы хотите сделать в PHP, посмотрите на usort
, и пусть пользователь предоставит поле для сортировки с помощью переменной GET.Если у вас есть все данные на одной странице, предоставляемые решения javascript могут уменьшить нагрузку на ваш сервер и повысить удовлетворенность пользователей.Нет причин, по которым вы не можете сделать и то и другое;)
Примером может быть (не копируйте / вставляйте, просто иллюстрация для этой цели, хотя я встроил более обычные средства безопасности):
class KeySorter {
private $valids;
private $key;
function __construct($valids){
$this->valids = $valids;
$this->key = reset($this->valids);
}
function setKey($key){
if(in_array($key, $this->valids)) $this->key = $key;
}
function compare($a,$b){
return strcmp($a[$this->key],$b[$this->key]);
}
function getValids(){
return $this->valids;
}
}
$keys = array('Server', 'Target','Set','Time', 'Length','Size','Status');
$data = array(...your array....);
$sorter = new KeySorter($keys);
if(isset($_GET['sort'])){
$sorter->setKey($_GET['sort']);
}
usort($data,array($sorter,'compare'));
echo '<table><thead><tr>';
foreach($sorter->getValids() as $sortkey){
echo '<th><a href="'
.htmlspecialchars(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), ENT_QUOTES)
.'?sort='.urlencode($sortkey)
.'">'.$sortkey.'</a></th>';
}
echo '</tr></thead>';