2010-09-06 61 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