2017-06-17 44 views
0

我需要從數據庫ID生成一個不唯一的哈希,我需要設置一個參數,生成的哈希不大於x。從低於X的ID生成整數散列?

實施例:

ID:12312452

不大於5

十字腳是20。現在我可以使用do-while來總和數字。總和是2

但是,如果我走54674567,該crossfoot是44,並在結束它的8 ......

我需要這個功能對於動態文本。我有一個元描述的數組(例如5個描述),並且在每個頁面上(一個帶有id的數據庫記錄),函數必須選擇一個描述。我不想將描述保存在數據庫中。

+2

退房模運算符,它可能是你在找什麼,'44%5 = 4'。 '任何正整數%x'都會比'x'小 – beardhatcode

+0

謝謝!我用'x = 5'嘗試了一些數字,但結果通常是'0','2'或'3'。它不夠動態。 – poldixd

回答

0

好吧,這裏是我的解決方案:

$numbers = [ 
    45384, 
    44638, 
    28213, 
    43498, 
    21170, 
    30211 
]; 

$max = 8; 

foreach ($numbers as $key => $value) { 
    var_dump(array_sum(str_split(crc32($value))) % $max); 
} 

結果:

int(6) 
int(1) 
int(4) 
int(1) 
int(4) 
int(4)