简体   繁体   English

如何使用PHP合并数组?

[英]How to merge array using PHP?

Date Array 日期数组

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

Day Array 日数组

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

)

Period Array 周期数组

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

How can i alter/merge the array so the array will become something like this? 我如何更改/合并数组,以便数组变成这样?

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

Using array merge will return something like this 使用数组合并将返回如下内容

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

Edited (Answer) 编辑(答案)

The problem can be solve using this function. 使用此功能可以解决问题。 Thanks Codaddict! 谢谢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);

You can try: 你可以试试:

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

Provided your 3 arrays are the same length and are indexed with the same keys , you could probably run this: 如果您的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]);
}

Edit: If your keys were not numeric, you would be able to use array_merge_recursive to get what you want. 编辑:如果您的密钥不是数字,则可以使用array_merge_recursive来获取所需的内容。 This might be a cleaner option if you want to rely on a base language function. 如果您要依赖基本语言功能,这可能是一个更干净的选择。 http://www.php.net/manual/en/function.array-merge-recursive.php http://www.php.net/manual/en/function.array-merge-recursive.php

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM