如何将数组值合并为单个数组?

时间:2016-09-22 09:32:39

标签: php arrays

我正在尝试将(字符串)数组值添加到单个数组中,我有三个数组值,如下所示:

Array ( [0] => 15 [1] => 16 )
Array ( [0] => jan [1] => feb )
Array ( [0] => 2012 [1] => 2012 )

现在我希望这些数组在单个数组中如下所示:

Array ( [0] => 15-jan-2012 [1] => 16-feb-2012 )

那我怎么能在php中做到这一点。

5 个答案:

答案 0 :(得分:2)

你需要这个自定义代码:太简单了,只需要一个循环来访问每个数组,索引和存储在一个数组中。

$d = array(15, 16);
$m = array("jan", "feb");
$y = array (2012, 2012);

$final = array();
for($i = 0; $i < count($d); $i++){
    $final[] = $d[$i]. "-" .$m[$i]. "-" .$y[$i];
}
print_r($final);

<强>输出:

Array ( [0] => 15-jan-2012 [1] => 16-feb-2012 )

你可以使用array_merge_recursive来做,但有一些困难。

ONLINE DEMO

答案 1 :(得分:1)

快速而肮脏的方式,我假设你的每个数组都有相同的长度

$a = array ('15','16' );
$b = array ('jan','feb');
$c = array ('2012','2012');

$newArray = array();

for($i=0;$i<=count($a);$i++){
    $newArray = $a[$i]. "-" .$b[$i]. "-" .$c[$i];
}

echo '<pre>';
print_r($newArray);
echo '</pre>';

答案 2 :(得分:1)

例如,您需要一个像这样的自定义代码:

$arr = [];
$arr1 = [15, 16, 17, ...];
$arr2 = [jan, feb, ...];
$arr3 = [2012, 2012, ...];

for($i=0, $count = count($arr1); i<$count; i++)
{
    $arr[] = "$arr1[$i]-arr2[$i]-arr3[$i]";
}
var_dump($arr);

答案 3 :(得分:0)

使用array_column获取所需的日期数组,最后使用implode进行连接。像

这样的东西
$arr1 = array(15, 16);
$arr2 = array('jan', 'feb');
$arr3 = array(2012, 2012);

$date = array($arr1, $arr2, $arr3);
$dates = array(array_column($date, 0), array_column($date, 1));

$reqDate = array();
foreach ($dates as $dateVal) {
  $reqDate[] = implode('-', $dateVal);
}

var_dump($reqDate); //your required output

答案 4 :(得分:0)

你可以像这样一起写下所有内容:

$a = [15, 16];
$b = ['jan', 'feb'];
$c = [2012, 2012];
$dates = array_map(function($arr) {
    return implode('-', $arr);
}, array_map(null, $a, $b, $c)));