如何在单个数组内的while循环中合并数组?

时间:2015-11-06 12:02:18

标签: php arrays

我有以下代码。

$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)
    )

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:-1)

array_merge在这里很有用。

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

print_r($w) ;

$w = array();应该在for循环之外。