2014-12-02 82 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