我现在已经尝试了大约 20 种不同的方法,将它放下并重新拾起几次,我对自己做错了什么感到茫然。我正在尝试从三个单独的数组创建一个数组数组。我遍历的第一个数组是日期列表。然后我遍历一个小屋列表(这是一个简单的营地调度程序),然后我从第三个数组中为每个小屋随机分配一个活动。
这三个数组是$cabins
、$activities
和$checkeddates
//swaps key-value so cabin names are keys
$cabins = array_flip( $cabins );
//sets each key value pair to be cabinname=> null
erase_val( $cabins );
foreach ( $checkeddates as $dates ) {
$uberarray[] = $dates;
}
$uberarray = array_flip( $uberarray );
foreach ( $uberarray as $k => $v ) {
$uberarray[$k] = $cabins;
}
此时,一个 var_dump 显示我有一个日期数组,每个日期都包含一个带有空值的小屋名称数组,从这一点开始我已经尝试了十几件事,这就是我离开它的地方,尝试一个消除过程来计算找出它不是什么。
foreach ( $uberarray as $k => $v ) {
shuffle( $activities );
$s = $activities[0];
$uberarray[] = $s;
}
最后,我正在考虑构建大数组(还没有写入一些额外的规则,以防止对同一事物进行多次分配等。然后作为一个函数,我将遍历数组中已建立的组合来编写它到数据库。
编辑:请求我希望它最终看起来如何:
array
'ThuJan1st' =>
array
'cabin 1' => randomactivity1
'cabin 2' => randomactivity2
'cabin 3' => randomactivity3
目前我有 3 个中的 2 个,但我似乎无法将活动随机添加为值。
编辑:这是@kunal 的建议产生的:
array
'ThuJan1st' =>
array
'cabin 1' => randomactivity1
'cabin 2' => randomactivity2
'cabin 3' => randomactivity3
array
'FriJan2nd' =>
array
'cabin 1' => randomactivity4
'cabin 2' => Null
'cabin 3' => Null
一旦它迭代了一次活动,就没有其他任何东西被赋值。