duandan1995 2016-10-17 12:56
浏览 7
已采纳

将两个数组映射到一个具有nxm元素的数组中

I have two arrays:

Array1
(
    [0] => Mon
    [1] => Tue
    [2] => Wed
    [3] => Thu
)
Array2
(
    [0] => 12:00 am,04:00 pm
    [1] => 07:00 am,02:00 pm
)

I need to make a result array like this:

(
            [startTime] => Array
                (
                    [hours] => 07
                    [minutes] => 00 am
                )

            [endTime] => Array
                (
                    [hours] => 02
                    [minutes] => 00 pm
                )
            [weekday] => Monday
        )

Ideally, there will be 4 * 2 = 8 elements in new array. I do get 8, but don't get proper data.

here is my code:

$j = 0;
        foreach($array2 as $key => $value) {
            $start_time = explode(',', $value)[0];
            if(!empty($start_time)) {
                $end_time = explode(',', $value)[1];
                $gen_timings_array[$j]['startTime']['hours'] = explode(':',$start_time)[0];
                $gen_timings_array[$j]['startTime']['minutes'] = explode(':',$start_time)[1];
                $gen_timings_array[$j]['endTime']['hours'] = explode(':',$end_time)[0];
                $gen_timings_array[$j]['endTime']['minutes'] = explode(':',$end_time)[1];

                foreach ($array1 as $key => $value) {
                    $gen_timings_array[$j]['weekday'] = $enum[$value];
                    ++$j;
                }
            }
        }

And this is the output that I get:

Array
(
    [0] => Array
        (
            [startTime] => Array
                (
                    [hours] => 12
                    [minutes] => 00 am
                )

            [endTime] => Array
                (
                    [hours] => 04
                    [minutes] => 00 pm
                )
            [weekday] => Monday
        )

    [1] => Array
        (
            [weekday] => Tuesday
        )

    [2] => Array
        (
            [weekday] => Wednesday
        )

    [3] => Array
        (
            [weekday] => Thursday
        )

    [4] => Array
        (
            [startTime] => Array
                (
                    [hours] => 07
                    [minutes] => 00 am
                )

            [endTime] => Array
                (
                    [hours] => 02
                    [minutes] => 00 pm
                )
            [weekday] => Monday
        )

    [5] => Array
        (
            [weekday] => Tuesday
        )

    [6] => Array
        (
            [weekday] => Wednesday
        )

    [7] => Array
        (
            [weekday] => Thursday
        )

)
  • 写回答

1条回答 默认 最新

  • 普通网友 2016-10-17 13:14
    关注

    What about this:

    $j = 0;
    foreach($array2 as $key => $value) {
        $start_time = explode(',', $value)[0];
        if(!empty($start_time)) {
            $end_time = explode(',', $value)[1];
    
            foreach ($array1 as $key => $value) {
                $gen_timings_array[$j]['startTime']['hours'] = explode(':',$start_time)[0];
                $gen_timings_array[$j]['startTime']['minutes'] = explode(':',$start_time)[1];
                $gen_timings_array[$j]['endTime']['hours'] = explode(':',$end_time)[0];
                $gen_timings_array[$j]['endTime']['minutes'] = explode(':',$end_time)[1];
    
                $gen_timings_array[$j]['weekday'] = $enum[$value];
                ++$j;
            }
        }
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法