$id という 1 つの数値文字列内で 3 つの変数 (int) を渡す必要があります。これを行うために、変数を取得するために分解できるパディングを使用して $id を作成しています。それ以外の場合は、変数の間にアンダースコアを使用します。変数にはそれほど多くのゼロがないことがわかっているので、パディングとして 11 個のゼロを使用しています。したがって、現在私が持っている場合:
$int_one = 1;
$int_two = 2;
$int_three = 3;
それは次のようになります。
$id = "1000000000002000000000003";
私が使用する新しいIDを作成するには:
$id = $int_one . "00000000000" . $int_two . "00000000000" . $int_three;
そして、私が使用するIDを分離するには:
$int_one = 0;
$int_two = 0;
$int_three = 0;
if (strpos($id,"00000000000") !== false) {
$id = strrev($id); // Reversed so 0's in int's don't get counted
$id = explode("00000000000", $id);
// Set numbers back the right way
$int_one = strrev($id[2]);
$int_two = strrev($id[1]);
$int_three = strrev($id[0]);
}
これは、個々の変数が 0 の場合に問題が発生します。これを克服する方法はありますか、それとも大幅な再考が必要ですか?
編集: $id
intではなく数値文字列であると想定されています
0 ~ 2147483647 の int 変数を処理する必要がある