我正在處理多維數組,並難以嘗試創建動態兼容性圖表。如何分配可能的空插槽陣列?
Given Data :
4 instances of Value 1
7 instances of Value 2
理想結束結果實例
如果有4值的1和7值2的
[0] Value 2
[1] Value 1
[2] Value 2
[3]
[4] Value 2
[5] Value 1
[6] Value 2
[7]
[8] Value 2
[9] Value 1
[10] Value 2
[11] Value 1
[12] Value 2
如果有4值的1和4值2的(儘量均勻空間他們out不重疊)
[0] Value 1
[1] Value 2
[2]
[3] Value 1
[4] Value 2
[5]
[6]
[7] Value 1
[8] Value 2
[9]
[10]
[11] Value 1
[12] Value 2
如果有2個實例s的1和3 2. 2.
[0] Value 1
[1] Value 2
[2]
[3]
[4]
[5]
[6] Value 2
[7]
[8]
[9]
[10]
[11] Value 1
[12] Value 2
我有一個數組的桶大小12-24。在示例中,我使用了12.如果實例的數量不適合12個桶,則可以一直移動到24.如果它不適合24,則給出錯誤。
我嘗試使用array_pop和reverseing數組創建的任何循環都會在數組中間創建空洞,或者它不會均勻分散實例。
編輯: 這是我試過的。
$table_array = range(0,12);
// Method 1
for ($i = 0; sizeof($table_array); $i++)
{
$ready_array[] = ($i % 2) ? array_pop($table_array) : array_shift($table_array);
}
// Method 2
for ($i = 0; $i < sizeof($table_array); $i++)
{
$index = ($i % 2) ? sizeof($table_array) - ceil($i/2) : ceil($i/2);
$ready_array[$index] = $table_array[$i];
}
ksort($ready_array);
項目內容和目標
我有兼容和不兼容的藥丸的列表。
我讓用戶選擇他們服用的藥片和數量。
此基礎上,我搜索數據庫並匹配基於兼容性創建稱爲值1和值2
一個列表我有至少12小時的時間幀,以採取藥片藥片。
我應該在太空中用1小時的間隔在12小時內平均分配鈣和3的鐵,並且不要讓它們重疊。如果他們選擇12片鈣片和12片鐵片,我可以長達24小時讓他們服用這些藥片。
檢查的if語句裝載值時。 –
爲了清楚起見,優先級是:'a','ab','aba','ababa'等(如果a是「值1」或「值2」則無關緊要)?我的意思是:如果可能,留下所有值之間的空格('a');如果沒有,請添加儘可能少的'ab'(即由空格包圍的兩個不同的值),等等? –
如上所述,請澄清您的算法的標準,並且還請顯示您的(失敗)嘗試示例 – Steve