合并数组并将它们放入dd / mm / yyyy格式

时间:2016-02-23 10:37:59

标签: php arrays

我有3个阵列。一个用于约会,一个用于月份,一个用于一年。我想合并所有数组,以便日,月和年数组的值在一个数组中都有单独的值。

示例:

我想转:

Array
(
    [0] => 05
    [1] => 18
    [2] => 31
)
Array
(
    [0] => 04
    [1] => 11
    [2] => 12
)
Array
(
    [0] => 2013
    [1] => 1998
    [2] => 2006
)

进入

Array
(
    [0] => 05/04/2013
    [1] => 18/11/1998
    [2] => 31/12/2006
)

我已经看过合并数组或附加数组,但这似乎不起作用。我希望它们格式为dd/mm/yyyy的原因是,当我将这些日期放入我的mysql数据库时,我有一个日期格式。

3 个答案:

答案 0 :(得分:3)

尝试

$days = [5, 18, 31];
$months = [4, 11, 12];
$years = [2013, 1998, 2006];

$result = array_map(
    function ($d, $m, $y) {
        return sprintf("%s/%s/%s", $d, $m, $y);
        // return DateTime::createFromFormat('d/m/Y', sprintf("%s/%s/%s", $d, $m, $y)); <-- if you need a DateTime object
    },
    $days,
    $months,
    $years
);

注意

[]是自php 5.4以来引入的短数组语法,如果您在旧版本上运行,请使用规范array()

答案 1 :(得分:1)

尝试使用

$days = array(05, 18, 31);
$months = array(04, 11, 12);
$years = array(2013, 1998, 2006);

$result = array_map(
    function ($d, $m, $y) {
        return sprintf("%d/%d/%d", $d, $m, $y);
    },
    $days,
    $months,
    $years
);
echo "<pre>";
print_r($result);

截图

enter image description here

答案 2 :(得分:1)

<?php
$newArray = array();
$array1 = array(05,18,31);
$array2 = array(04,11,12);
$array3 = array(2013,1998,2006);

$i=0;
foreach($array1 as $value) {
    $newArray[] = $value.'/'.$array2[$i].'/'.$array3[$i];
    $i++;
}
  echo '<pre>';print_r($newArray);exit;
?>