Php 如何将这些数组合并在一起?

Php 如何将这些数组合并在一起?,php,Php,我在合并这些数组时遇到了很多麻烦,我尝试了array\u merge和array\u merge\u recursive,但是它们没有给我想要的结果。如果有人能给我指出正确的方向,那将是令人惊讶的,我已经用头撞桌子好几个小时了 阵列1: array [ 0 => array [ "start" => "04/26/2015 8:00 AM" ] 1 => array [ "start" => "04/26/2015 9:00 AM" ] ]

我在合并这些数组时遇到了很多麻烦,我尝试了array\u merge和array\u merge\u recursive,但是它们没有给我想要的结果。如果有人能给我指出正确的方向,那将是令人惊讶的,我已经用头撞桌子好几个小时了

阵列1:

array [
  0 => array [
    "start" => "04/26/2015 8:00 AM"
  ]
  1 => array [
    "start" => "04/26/2015 9:00 AM"
  ]
]
阵列2:

array [
  0 => array [
    "end" => "04/26/2015 10:00 AM"
  ]
  1 => array [
    "end" => "04/26/2015 11:00 AM"
  ]
]
阵列3:

array:2 [
  0 => "1"
  1 => "3"
]
我想要的结果是,不要担心与这个问题无关的“2015-04-26”:

array [
  "2015-04-26" => array [
    "cities" => array [
      1 => array [
        "start" => "04/26/2015 8:00 AM"
        "end" => "04/26/2015 10:00 AM"
      ]
      3 => array [
        "start" => "04/26/2015 9:00 AM"
        "end" => "04/26/2015 11:00 AM"
      ]
    ]
  ]
]

它只是一个简单的
for
循环,从每个输入数组获取值,并将它们组合到输出数组中

$result = array('2015-04-26' > array('cities' => array()));
foreach ($array1 as $id => $val1) {
    $start = $val1['start'];
    $end = $array2[$id]['end'];
    $key = $array3[$id];
    $result['2015-04-26']['cities'][$key] = array('start' => $start, 'end' => $end);
}

在这种特殊情况下,下面的代码将实现这一点。但是您应该重新考虑您的数据结构


在结果中,
array:3
意味着什么?哦,这无关紧要,这就是我的php调试器输出数组的方式。我将删除这些元素。看起来应该是数组的大小,除了那些数组只有2个元素,而不是3个。是的,这与问题无关,所以请忽略!到现在为止你们都试了些什么?你们都帮了我很大的忙,节省了我几个小时。。。真的谢谢你们!
$arrStart = [
    0 => [
        "start" => "04/26/2015 8:00 AM",
    ],
    1 => [
        "start" => "04/26/2015 9:00 AM",
    ],
];

$arrEnd = [
    0 => [
        "end" => "04/26/2015 10:00 AM",
    ],
    1 => [
        "end" => "04/26/2015 11:00 AM",
    ],
];

$keys = [
  0 => "1",
  1 => "3",
];

$result = [];

foreach ($keys as $i => $key) {
    $result[$key] = [
        'start' => $arrStart[$i]['start'],
        'end'   => $arrEnd[$i]['end'],
    ];    
}

var_dump($result);