将数量未知的多维数组转换为单个数组



我对数组有点陌生,在这方面遇到了严重的问题。所以我希望有人能帮忙:(

我让用户通过表格输入他们商店的营业时间,最后我得到了一系列的值。我不知道实际创建了多少个数组,因为它是由用户控制的,我知道它将在3到9之间。

我最终得到的数组看起来像这样:

Array ( 
[opening_hours_start] => Array ( 
[0] => 18:30 
[1] => 18:30 
[2] => 09:00 ) 
[opening_hours_end] => Array ( 
[0] => 22:00 
[1] => 23:00 
[2] => 18:00 ) 
[weekday] => Array ( 
[0] => 1 
[1] => 2 
[2] => 3 
[3] => 5 ) 
[weekday2] => Array ( 
[0] => 4 ) 
[weekday3] => Array ( 
[0] => 6 
[1] => 7 ) 
)

我最终想要的是这样的东西:

Array(
[1] => Array (
[start] => 18:30
[end] => 22:00)
[2] => Array (
[start] => 18:30
[end] => 22:00)
etc.
)
)

这里有什么魔法师可以帮我一把吗?

这样做,演示

$result = array_map(function($start,$end){
return array(
"start"=>$start,
"end"=>$end
);
},$array["opening_hours_start"],$array["opening_hours_end"]);
print_r($result);

好吧,这就是我最终解决问题的方法:

$opening_hours = $original_array;
$opening_hours_start = $opening_hours['opening_hours_start'];
$opening_hours_end = $opening_hours['opening_hours_end'];
unset($opening_hours['opening_hours_start']);
unset($opening_hours['opening_hours_end']);
$weekdays_array = $opening_hours;
$array = array();
$i = 0;
foreach ($weekdays_array as $weekday_set => $weekdays) {
foreach($weekdays as $weekday) {
$data = [
'weekday' => $weekday,
'start' => $opening_hours_start[$i], 
'end' => $opening_hours_end[$i]];
array_push($array, $data);
}
$i++;
}