2012-05-10 56 views
1

嗨我有一组数据库结果,我需要将其组织到多维数组中,以便我可以通过一封电子邮件将用户的结果通过电子邮件发送给多个电子邮件。从数据库结果构建多维数组

我从db获得的值是name,email,route_name,route_details。理想情况下,我想根据用户电子邮件将路线分组在一起,因为这是他们的唯一标识符。我认为像下面这样的东西会对我有用。

Array 
    (
     [[email protected]] => Array 
          (
          [0] => name 
          [1] => Array 
           (
            [0] => route_name 
            [1] => route_details 
           ) 
          [2] => Array 
           (
            [0] => route_name 
            [1] => route_details 
           ) 
          ) 
     [[email protected]] => Array 
          (
          [0] => name 
          [1] => Array 
           (
            [0] => route_name 
            [1] => route_details 
           ) 
          [2] => Array 
           (
            [0] => route_name 
            [1] => route_details 
           ) 
          [3] => Array 
           (
            [0] => route_name 
            [1] => route_details 
           ) 

          ) 
    ) 

任何帮助将不胜感激我已经尽了结果内循环以下,但我不知道结果如何组基于电子邮件,我不认为这正是我需要的。

$routeArray = array($data->email ,array($data->route_name, $data->route_details)); 

    $userEmailArray[] = $flightArray; 

感谢

+2

请提供表格定义。 SQL查询与这类操作有很大关系。 –

+0

什么是'$ flightArray'包含?尝试'$ userEmailArray [$ data-> email] [] = array($ data-> route_name,$ data-> route_details);' –

+0

抱歉$ flightArray应读取$ routeArray。 SQL从大约3个其他表中加入,但是对于每个结果,值都是id,name,email,route_name,route_details。 – user1293351

回答

0

我认为下面会为你工作。此代码将添加键名称而不是数字索引。

// Add order by email clause 
$sql = "select name, email, route_name, route_details from YOUR SQL QUERY ORDER BY email"; 
$res = mysql_query($sql); 

$desired_format = array(); 

while($row = mysql_fetch_assoc($res)){ 
    $tmp = array('route_name'=>$row['route_name'],'route_details'=>$row['route_details']); 
    $desired_format[$row['email']]['name'] = $row['name']; 
    $desired_format[$row['email']][] = $tmp; 
} 
+0

真棒,与一点调整工作。 – user1293351

+0

我很高兴帮助你。 – piyush