[英]Adding values to a multidimensional array PHP
我現在已經嘗試了大約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
一旦它迭代了一次活動,就沒有其他任何東西被分配一個值。
foreach ($checkeddates as $date) { shuffle( $activities ); foreach ($cabins as $cabin) { foreach ($activities as $activity) { $uberarray[$date][$cabin] = $activity; } } }
編輯:以上答案不正確。 它為每個日期/客艙對分配相同的活動。 以下答案應該為您提供所需的信息。
$checkeddates = array('ThuJan1st');
$cabins = array('cabin 1','cabin 2','cabin 3');
foreach ($checkeddates as $date) {
$activities = array('randomactvitiy1','randomactivity2','randomactivity3');
shuffle( $activities );
foreach ($cabins as $cabin) {
$uberarray[$date][$cabin] = array_pop($activities);
}
}
var_dump($uberarray);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.