最近在做ecshop的商品庫存模組,分別給一款商品的多個屬性組合設定庫存,如下圖:
一款手機有不同顏色,螢幕尺寸,系統和電量,都要設定不同的庫存,如果都要手動選擇屬性組合,則會耗費很多不必要的時間。假如開啟頁面時就已經設定好屬性排列組合那就最好不過,因此想了整天,寫了如下函式:
1/*2author:gazeon
3date:2016-6-20
4function:getarrset
5param:$arrs 二維陣列
6getarrset(array(array(),...))
7陣列不重複排列集合8*/
9function getarrset($arrs,$_current_index=-1)
1029
else
3043
//如果當前的迴圈的陣列等於輸入陣列長度(這個陣列就是最後的陣列)
44else
if($_current_index==$_total_count)45
5354}55
}5657return
$_total_arr;58
}5960/*
************test*************
*/61
$arr=array(62
array('a','b','c'),
63array('a','b','c'),
64array('1','2','3'),
65array('i','ii','iii')
66);
6768
var_dump(getarrset($arr));
非重複組合排列(含重複數字時,生成不重複組合排列)
sample input 1 2 2 3 sample output 分析資料 這裡和不含重複資料生成全組合排列 是不同的,如果使用原 會出現重複的資料,主要原因是在遞迴的時候,會把那些重複的數字當作不同的數字利用,而平等對待,直接進行遞迴。我們要做的就是把相同的數區分出來,我們這裡可以引入乙個陣列...
生成不重複的0 1序列排列組合
在用隱列舉法解0 1型整數線性規劃時,需要生成對應於自變數個數的不重複的0 1序列的排列組合。下面是用乙個兩層迴圈實現生成0 1型整數線性規劃問題解空間的 def generatesequence n x 0 for i in range n xtran m 0while len x 2 n for...
php陣列合併怎麼不去重複
在php中,可以利用array merge recursive 函式實現不去重複的合併陣列 該函式在處理兩個或更多個陣列元素有相同的鍵名時,不會進行鍵名覆蓋,而是將多個相同鍵名的值遞迴組成乙個陣列。本教程操作環境 windows7系統 php7.1版 dell g3電腦 在php中,可以利用arra...