无法按日期排序多维数组PHP

问题描述:

我目前正在尝试按PHP中的截止日期排序多维数组,但排序不成功。我尝试了在这里应用几个解决方案,但没有运气。有人可以请建议下面的代码的正确解决方案?无法按日期排序多维数组PHP

function getTasksTeam($user) { 

    $master = array(); 
    $master["record"] = array(); 


    $teamArray = array(); 
    $teams = mysql_query("SELECT * FROM users WHERE _id = '$user'") or die(mysql_error()); 
    if (mysql_num_rows($teams) > 0) { 
         while(($row = mysql_fetch_assoc($teams))) { 
          $teamArray = explode(':', $row["TEAM"]); 

         } 
    } 

    for ($i = 0;$i < count($teamArray);$i++) { 
     $teamId = $teamArray[$i]; 

     $query = mysql_query("SELECT * FROM tasks WHERE RESPONSIBLE_TYPE = '0' AND RESPONSIBLE = '$teamId' AND STATUS <> 3") or die(mysql_error()); 
     if (mysql_num_rows($query) > 0) { 
      while (($row = mysql_fetch_assoc($query))) { 
        $record = array(); 
        $record["id"] = $row["_id"]; 
        $record["task"] = $row["TASK"]; 
        $record["part_number"] = $row["PART_NUMBER"]; 
        $record["due"] = $row["DATE_DUE"]; 
        $record["responsible"] = $row["RESPONSIBLE"]; 
        $record["status"] = $row["STATUS"]; 
        array_push($master["record"], $record); 

      } 
     } 
    } 

    usort($master["record"], 'date_sort'); 

    $master["success"] = 1; 
    header('Content-type: application/json'); 
    echo json_encode($master); 

} 

function date_sort($a, $b) { 
    return strcmp($a['due'], $b['due']); 
} 
+0

为什么不直接在使用order by的mysql查询中排序?它比在php代码中做得更有效率。 – msantos

+1

@msantos他不能使用'ORDER BY',因为他有嵌套循环;) –

您可以使用usortstrtotime这样的:

usort($master["record"], function($a, $b) { 
    return strtotime($a['due']) - strtotime($b['due']); 
}); 

我希望这会帮助你。

+0

工作很好!谢谢! – Josh