我对数组有点陌生,在这方面遇到了严重的问题。所以我希望有人能帮忙:(
我让用户通过表格输入他们商店的营业时间,最后我得到了一系列的值。我不知道实际创建了多少个数组,因为它是由用户控制的,我知道它将在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++;
}