将两个阵列组合成一个阵列1 = 11,12,1阵列2 =上午,下午,上午11点,下午12点,凌晨1点?

时间:2014-12-18 21:48:28

标签: php arrays

[time] => Array
        (
            [0] => 4
            [1] => 5
        )

[ampm] => Array
        (
            [0] => AM
            [1] => PM
        )

我需要这个输出为凌晨4点到下午5点......这可能吗?

4 个答案:

答案 0 :(得分:3)

您可以使用array_map来组合多个数组的元素:

$newArray = array_map(function($a, $b) {
    return $a . strtolower($b);
}, $oldArray['time'], $oldArray['ampm']);

答案 1 :(得分:1)

这应该适合你:

(时间和安培必须具有相同数量的值)

<?php

    $array = array(
                "time" => array(4, 5),
                "ampm" => array("AM", "PM")
            );

    $output = array();

    for($count = 0; $count < count($array["time"]); $count++)
        $output[] = $array["time"][$count] . " " . $array["ampm"][$count];

    print_r($output);

?>

输出:

Array ( [0] => 4 AM [1] => 5 PM )

修改

如果要在一行中显示每个数组值,请使用:

//print_r($output); delete this and write:

foreach($output as $value)
    echo $value . "<br />";

输出:

4 AM
5 PM

答案 2 :(得分:0)

<?php

$myArray = [
    'time' => ['4', '5', '11'],
    'ampm' => ['AM', 'PM', 'PM']
];

foreach ($myArray['time'] as $key => $time) {
    echo $time . $myArray['ampm'][$key];
}

这只适用于$ myArray ['time']和$ myArray ['ampm​​']具有相同数量的元素。

我不确定我是否正确理解了你的问题。希望这有帮助。

答案 3 :(得分:0)

你没有提供&#34;为什么&#34;昨天在这里,但同时评论说,目的是安排在特定日期的面试。 无论是营业时间还是仅仅是常识,或者实际上是24小时跨度,您都可以创建有意义的对象,这些对象可以以任何可能的方式显示,而不是合并有趣的数组。 这是一个包含您的时区的简单示例,可以以任何可能的方式显示输出等,它可能至少让您入门 - 请查看文档,它就在那里:

$start = new DateTime('2014-12-20 00:00:00');
$interval = 'PT1H'; ' 1 hour intervals

foreach (new DatePeriod($start, new DateInterval($interval), 23) as $period) :
    var_dump($period);
endforeach;