我有一個SQL表,它使用字符串作爲鍵。我需要使用PHP將該字符串(最多18個字符)轉換爲一個唯一的(!)4字節整數。誰能幫忙?從PHP中的一個字符串創建一個唯一的4字節整數
4
A
回答
0
0
你不能。四字節整數可以表示2^32 = 40億個值,這不足以保存目標空間。
如果您當前在表中的行數少於40億行,則可以創建一個交叉表,該交叉表只爲每個表分配增量值。採用這種方法,您將被限制在40億行,但這可能適合您的情況。
1
Unique?不可能,對不起。
讓我們來仔細看看:
隨着18個字符,即使我們假定只有ASCII的128點可能的字符(7位),你會得到128^18個可能的字符串(我不即使進入更短的字符串的可能性!),這是大約8E37(8和37個零)。
對於一個4字節的整數,你會得到256^4個可能的整數,大約是4E9(40億)。
所以,你有大約4E28更多的字符串比你有整數;你不能有一個獨特的映射。
因此,只要輸入4294967297鍵,您一定會遇到碰撞,但只要您輸入多個鍵,就可能會遇到碰撞。
相關問題
- 1. 從PHP中的字符串創建唯一的整數
- 2. 根據字符串創建一個唯一的整數
- 3. 創建一個唯一的字母數字10個字符的字符串
- 4. 從4個字節構建一個有符號的整數?
- 5. 從字母數字字符串創建唯一整數
- 6. 從另一個字符串中創建一個字符串?
- 7. PHP - 創建一個從字符串
- 8. Python:如何從一個4字節的字節數組中獲取一個4字節大小的整數?
- 9. 創建一個唯一的字符串用於保存數據
- 10. 從多個整數數組創建一個字符串數組
- 11. 如何將一個字符串轉換爲一個唯一的整數在php
- 12. 從JavaScript中的字符串數組創建一個唯一的ID?
- 13. 如何從一個php數組中產生一個唯一的字符串
- 14. 從一位數的整數中創建一個兩位數的字符串
- 15. 從一個整數創建一個字節
- 16. 爲每個唯一的長字符串創建一個簡短的唯一字符串
- 17. 從字符串創建一個數組
- 18. 從另一個太長的唯一數值創建一個固定長度的唯一字符串
- 19. PHP解釋一個4字節的二進制字符串作爲一個無符號的大端整數
- 20. 在excel中爲字母數字字符串指定一個唯一的整數
- 21. 創建從一個字節[]變量(C#)的字符串
- 22. 從其他兩個字符串創建唯一的字符串(一個是獨特的,另一種是不)
- 23. 試圖從字符串數組中創建一個字符串
- 24. 創建一個從字節[]
- 25. 如何從一個字符串向量中創建一組唯一的名稱?
- 26. 生成從2個關鍵字一個唯一的字符串
- 27. 爲什麼SecureRandom.uuid創建一個唯一的字符串?
- 28. 計算可以從一個字符串中創建的唯一字符串的數量
- 29. 從Lisp中的一個字符串創建一個變量名
- 30. 從Matlab中的一個字節創建一個數組
你將如何適應一個18字節的字符串爲4個字節的整數? – 2012-02-27 18:15:28
不可以。沒有足夠的4字節整數來覆蓋所有可能的字符串。 – 2012-02-27 18:15:57
18個字符的字符串有18個字節。你說「_max._ 18個字符」,因此有更多的組合,那麼說18個字節。現在,您要將18字節壓縮爲4字節。這可能會工作一段時間,但不長。 – KingCrunch 2012-02-27 18:17:13