2015-11-06 56 views
0

我有以下代碼。如何合併單個數組內的while循環內的數組?

$w = array(); 
while ($rowData = mysql_fetch_assoc($resultData)) { 
               $w[] = $rowData ; 
              } 
print_r($w) ; 

$ w給了我下面的數組。

Array 
(
    [0] => Array 
     (
      [fname] => Sumit Manager 
      [role_id] => 2 
      [punch_in] => 2015-11-06 06:27:29 
      [id] => 1042 
      [punch_out] => 2015-11-06 06:28:38 
      [working_hours] => 00:01:09 
      [hourlyrate] => 20.0000 
      [payable] => 0.38333332 
      [time_status] => out_time 
      [user_id] => 77 
     ) 

    [1] => Array 
     (
      [fname] => Sumit Manager 
      [role_id] => 2 
      [punch_in] => 2015-11-06 06:28:38 
      [id] => 1044 
      [punch_out] => 2015-11-06 06:29:15 
      [working_hours] => 00:00:37 
      [hourlyrate] => 20.0000 
      [payable] => 0.20555554 
      [time_status] => out_break 
      [user_id] => 77 
     ) 

) 
Array 
(
    [0] => Array 
     (
      [fname] => John Server 
      [role_id] => 3 
      [punch_in] => 2015-11-06 06:28:17 
      [id] => 1043 
      [punch_out] => 2015-11-06 06:29:56 
      [working_hours] => 00:01:39 
      [hourlyrate] => 12.0000 
      [payable] => 0.33000000 
      [time_status] => out_time 
      [user_id] => 78 
     ) 

) 

我想要的是將上面的數組合併成具有下面索引的單個數組。

Array 
    (
     [0] => Array (array1 from loop), 
     [1] => Array (array2 from loop) 
    ) 
+0

我不知道我理解你的問題,是不是所有的數組都準備好了,就像你想要的一樣? – Epodax

+0

'$ w'給出2個數組作爲輸出?怎麼樣?什麼是生產'Sumit Manager'和什麼是生產'John Server'? –

+0

當使用'print_r($ w); exit;'時會發生什麼?請給出'$ w'的產生。 while循環已經在循環中了嗎? –

回答

-1

array_merge將在此處有用。

$w = array(); 
while ($rowData = mysql_fetch_assoc($resultData)) { 
    $w = array_merge($w, $rowData) ; 
} 

print_r($w) ; 

$w = array();外應for循環。

+0

這不像預期的那樣是一種解決方案,因爲它可以爲單個陣列提供單個陣列中的所有while和for循環行。 –

+0

需求合併成一個數組。請在OP確認之前不要投票。 – Samir

0

嘗試這種情況:

$x = []; 
for(){ // Your for loop here 
    $w = array(); 
    while ($rowData = mysql_fetch_assoc($resultData)) { 
     $w[] = $rowData; // create a array for current Id rows 
    } 
    $x = arrray_merge($x, $w); // Merge the array generated to the for lopping array. 
} 
print_r($x); 

這裏當for循環啓動時,它會觸發一個while循環將存儲由while循環中$w陣列所產生的所有行。之後,它將被推送到外部循環陣列$x

解決方案2

您可以簡單地使用$x[] = $w;代替$x = arrray_merge($x, $w);