Kaedah untuk merangkum nombor kepada had 6 hingga 8 aksara
P粉315680565
P粉315680565 2023-08-10 10:36:59
0
2
611
<p><br /></p> <pre class="brush:php;toolbar:false;">fungsi statik awam menjanaReceiptNumber(int $id) { $nombor_resit = sprintf('%06d', $id % 100000000); pulangkan $resit_nombor; }</pre> <p>Saya menggunakan kod di atas untuk menukar $id masuk kepada minimum 6 digit, maksimum 8 digit nombor. Contohnya: 000001 - 99999999</p> <p>Tetapi terdapat kecacatan dalam kod ini Apabila $id bersamaan dengan 100000000, ia akan mengembalikan 000000. Bagaimanakah saya harus memperbaiki kod di atas untuk mengembalikan 000001? </p> <p>Dengan analogi, $id ialah ID auto-increment bagi pangkalan data. </p> <p>Sebab saya ingin mencapai ini adalah kerana saya mempunyai kotak teks paparan dengan had teks hanya 8 digit dan saya hanya boleh mengira nombor kembali dari 000001 dan terus mengulang. </p>
P粉315680565
P粉315680565

membalas semua(2)
P粉403804844




public static function generateReceiptNumber(int $id)
{
    // 处理特殊情况,当$id为100000000时     if ($id === 100000000) {
        return '000001';
    }

    // 使用取模运算将ID限制在范围0到99,999,99     $limited_id = $id % 100000000;
    
    // 格式化限制的ID,使用前导零确保至少6位     $receipt_number = sprintf('%06d', $limited_id);
    
    return $receipt_number;
}


Sila semak sama ada jawapan ini membantu

P粉863295057

Bagaimana pula dengan ini:

function generateReceiptNumber(int $id)
{
    while($id>=100000000)
        $id -= 100000000 - 1;
    return sprintf('%06d', $id);
}
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan