2015-01-16 3 views
-2

У меня есть отчет PHP, который выходит на массив серверов, чтобы получить время безотказной работы. Затем укажите время работы в таблице. Очень просто.PHP сортировать несколько массивов

Я ищу, чтобы посмотреть, как отсортировать этот массив так, чтобы наивысшее время безотказной работы находилось в верхней части списка.

Я знаю о arsort(), но я не знаю, как применить его к этому утверждению из-за того, что foreach строит таблицу динамически.

Вот мой код:

$servers = server1,server2,server3 

foreach ($servers as $srv) { 
    $output = array(); // Reset the $output array each time 
    exec("/root/get_report_uptime.sh $srv",$output,$retval); 
    echo "<tr>"; 
     echo "<td><a href='http://$srv/' target='_blank'>$srv</a></td>"; 
     echo "<td>$output[0] days</td>"; 
    echo "</tr>"; 
} 

$output[0] возвращает число, как "100". Ищите сортировать по $output[0], удерживая при этом связанный с ним $srv.

ответ

0
$days = array() 
foreach ($servers as $srv) { 
    $output = array(); // Reset the $output array each time 
    exec("/root/get_report_uptime.sh $srv",$output,$retval); 
    $days[$srv] = $output[0]; 
} 
arsort($days); 
foreach($days as $srv => $day) { 
    echo "<tr>"; 
     echo "<td><a href='http://".$srv."/' target='_blank'>".$srv."</a></td>"; 
     echo "<td>".$day." days</td>"; 
    echo "</tr>"; 
} 
Смежные вопросы