こんにちは私は何千ものユニークな予測不可能なシリアルを生成したいので、この関数を書きました
function generate_serials($count){
$serials = array();
$token = '8uhf7+-=??/\/';
for($i = 1; $i <= $count; $i++){
$hash = sha1(md5( $token . ( time() + (432 * 1000) ) ));
$serial = '';
for($j = 0; $j < 12; $j++){
if($j == 4 || $j == 8) $serial .= '-';
$serial .= $hash[rand(0, 39)];
if(in_array($serial, $serials)){
$serial = '';
$j = 0;
}
}
$serials[] = $serial;
}
return $serials;
}
このアプローチについてはほとんど問題がありません。
理由はわかりませんが、これは信用できません。(私はいつも私の解決策を考えており、私は愚かです)これに問題はありますか?
もう1つの問題は、パフォーマンスに約20〜30秒かかることです。それは自然なことですか、それとも私が混乱させたのですか。
アップデート
申し訳ありませんが、パフォーマンスの問題は、内側のループのカウンターが外側のループと同じ名前であるということでした。私の間違いです。:D