动态多维数组排序

时间:2014-08-06 18:42:38

标签: php arrays

大家好,我有一个简单的问题。如何通过字符串选择多维数组的哪一列进行排序。这是你应该知道的一些信息。

我有桌子上的eshops数据和一个功能,显示我这样的特定eshop的订单

$sql = mysql_query("SELECT * FROM eshops WHERE active = 1");
while($data = mysql_fetch_assoc($sql)){
   $res = showOrders($data['host'],$data['user'],$data['pass'],$data['db'],$data['prefix']);
   echo $res;
}

这是我第一次尝试如何通过将sql条件传递给我的函数来显示我做过滤器的所有命令。但后来我想对结果进行排序,这里出现的问题是我可以对每个eshop进行排序但是我想立即对所有的eshops进行排序这意味着如果我按照订单日期对它们进行排序,那么eshops就会混淆但是现在这是不可能的我做的。

示例:

$GLOBALS['container'] = array();

并且在函数中我将数据放入这样的数组

  $GLOBALS['container'][] = array($data['eshop_id'],$data2['order_id']
  ,$data2['order_status'],$data2['order_number'],$data2['d_f_name'],$data2['d_l_name']
  ,$data2['order_total'],$data2['payment_method_id'],$data2['shipping_method_id']
  ,$data2['Exportovano'],$data2['C_Baliku'],date("d.m.Y",strtotime($data2['order_date']))); 

然后我喜欢那样

foreach($GLOBALS['container'] as $key => $datas){
    $eshop_id[$key] = $datas[0]; 
    $order_id[$key] = $datas[1];
    $order_st[$key] = $datas[2];
    $order_nm[$key] = $datas[3];
    $d_f_name[$key] = $datas[4];
    $d_l_name[$key] = $datas[5];
    $order_tl[$key] = $datas[6];
    $pay_m_id[$key] = $datas[7];
    $shp_m_id[$key] = $datas[8];
    $exported[$key] = $datas[9];
    $parc_num[$key] = $datas[10];
    $ord_date[$key] = $datas[11];
}

array_multisort($ord_date, SORT_DESC,$d_f_name, SORT_ASC, $GLOBALS['container']); 

现在我们可以按照我的意愿排序,然后通过foreach容器选择顺序也可以添加一个条件但是如何选择我要排序的东西?体育我通过get

传递数据
?sort=ord_date&orn=asc

我想要排序ord_date变量如何提升?请帮助我谢谢。

我也愿意接受其他解决方案。

1 个答案:

答案 0 :(得分:0)

在WHERE语句使用ORDERED BY(列)语句之后,在SQL查询中编写会更容易。 编辑: Using ORDER BY statement