2012-05-10 53 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