2010-09-06 63 views
0

日期陣列如何使用PHP合併數組?

array(
    0 => array("date_1" => "06-09-2010"), 
    1 => array("date_2" => "07-09-2010"), 
    2 => array("date_3" => "08-09-2010") 
) 

日陣列

array(
    0 => array("day_1" => "Monday"), 
    1 => array("day_2" => "Tuesday"), 
    2 => array("day_3" => "Wednesday") 

週期陣列

array(
    0 => array("period_1" => "1"), 
    1 => array("period_2" => "1"), 
    2 => array("period_3" => "1") 
) 

如何改變/合併數組,使數組變成這樣的東西?

array 0 = date_1,day_1, period_1 
array 1 = date_2,day_2, period_2 
array 2 = date_3,day_3, period_3 

使用數組合並將返回這樣的事情

array(
    0 => array("date_1" => "06-09-2010"), 
    1 => array("date_2" => "07-09-2010"), 
    2 => array("date_3" => "08-09-2010"), 
    3 => array("period_1" => "1"), 
    4 => array("period_2" => "1"), 
    5 => array("period_3" => "1"), 
    6 => array("day_1" => "Monday"), 
    7 => array("day_2" => "Tuesday"), 
    8 => array("day_3" => "Wednesday") 
) 

編輯(答)

問題就可以解決了使用此功能。謝謝Codaddict!

$date = array(
array('date_1'=>"06-09-2010"), 
array('date_2'=>"07-09-2010")); 

$day = array(
    array("day_1"=>"Monday"), 
    array("day_2"=>"Tuesday") 
); 

$period = array(
    array("period_1"=>1), 
    array("period_2"=>2) 
); 

$result = array(); 
for($i=0;$i<count($date);$i++) { 
    array_push($result,array($data[$i],$day[$i],$period[$i])); 
} 
var_dump($result); 
+3

確實有些換行符不會殺了你... – 2010-09-06 02:10:29

+0

下次使用var_export代替var_dump – 2010-09-06 02:17:33

+0

感謝@Yi Jiang的編輯。 @Yanic好吧,下次我會嘗試使用var_export。 – cyberfly 2010-09-06 02:30:50

回答

2

你可以試試:

$data = array(
    array('date_1'=>"06-09-2010"), 
    array('date_2'=>"07-09-2010") 
); 
$day = array(
    array("day_1"=>"Monday"), 
    array("day_2"=>"Tuesday") 
); 
$period = array(
    array("period_1"=>1), 
    array("period_2"=>2) 
); 

$result = array(); 

// assuming all arrays are of same size. 
for($i=0;$i<count($data);$i++) { 
    array_push($result,array($data[$i],$day[$i],$period[$i])); 
} 
var_dump($result); 
+0

嗨,謝謝這是我尋找的。再次感謝codadict :) – cyberfly 2010-09-06 02:29:21

0

前提是你的3個數組是相同長度並與相同的密鑰被索引,你很可能運行以下命令:

$merged = array(); 
//iterate on the keys 
foreach(array_keys($date_array) as $index) 
    //merge the sub arrays 
    $merged[$index] = array_merge(array(), $date_array[$index], $day_array[$index], $period_array[$index]); 
} 

編輯:如果你的鑰匙不是數字,你將能夠使用array_merge_recursive得到你想要的東西。如果你想依賴基礎語言功能,這可能是一個更清潔的選項。 http://www.php.net/manual/en/function.array-merge-recursive.php

+0

感謝您的答案。 – cyberfly 2010-09-06 02:29:45