2014-12-02 89 views
0

我得到了以下內容,但結果中是一個很長的字符串,其中包含的字符串是服務器名稱,我希望對結果進行排序,這可能嗎?使用分解變量對一個while循環進行排序

<?php 
$dbQuery = mysql_query("SELECT * FROM opencall where cust_id = '[email protected]' and status < 6 order by fixbyx asc") or die(mysql_error());//find call ref of open call with correct id 
    while ($PRTGdbresults = mysql_fetch_array($dbQuery)){ 
    $SplitText = explode("\n", $probtext); //split the string by line break 
    echo'<div class="row">'; 
    echo'<div class="inf_div" title="Current Server">'; 
      echo $SplitText[1]; //this is the server name I wish to sort by 
     echo'</div></div>'; 
} 
?> 

回答

1

您可以定義自己的函數進行排序,然後使用此函數與usort排序函數。

使用您給出的代碼我將簡單比較服務器名稱的字符串並按字母順序對它們進行排序。這是代碼;

<?php 
    $dbQuery = mysql_query("SELECT * FROM opencall where cust_id = '[email protected]' and status < 6 order by fixbyx asc") or die(mysql_error()); 
    $results = array(); 

    while ($PRTGdbresults = mysql_fetch_array($dbQuery)){ 
     array_push($results,$probtext); 
    } 

    usort($results, "sortProbtext"); 

    foreach($results as $key => $probtext){ 
     $SplitText = explode("\n", $probtext); 
     echo'<div class="row">'; 
     echo'<div class="inf_div" title="Current Server">'; 
     echo $SplitText[1]; 
     echo'</div></div>'; 
    } 

    function sortProbtext($a, $b){ 
     $SplitTextA = explode("\n", $a); 
     $SplitTextB = explode("\n", $b); 
     if ($SplitTextA[1] == $SplitTextB[1]) { 
      return 0; 
     } 
     return ($SplitTextA[1] < $SplitTextB[1]) ? -1 : 1; 
    } 
?> 
+0

非常感謝! – Maff 2014-12-02 10:37:32