將數字封裝為6至8位元字元限制的方法
P粉315680565
P粉315680565 2023-08-10 10:36:59
0
2
589
<p><br /></p> <pre class="brush:php;toolbar:false;">public static function generateReceiptNumber(int $id) { $receipt_number = sprintf(' d', $id % 100000000); return $receipt_number; }</pre> <p>我正在使用以上代碼來將傳入的$id轉換為最小6位數、最大8位數的數字。例如:000001 - 99999999</p> <p>但是這段程式碼有一個缺陷,當$id等於100000000時,它將返回000000,我應該怎麼改進以上的程式碼來回傳000001呢? </p> <p>依序類推,$id是資料庫的自增id。 </p> <p>之所以想要實現這一點,是因為我有一個顯示文字框,其文字限制只有8位數,我只能將數字重新從000001開始計數並繼續重複。 </p>
P粉315680565
P粉315680565

全部回覆(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;
}


請看這個答案是否能幫助

P粉863295057

這怎麼樣:

function generateReceiptNumber(int $id)
{
    while($id>=100000000)
        $id -= 100000000 - 1;
    return sprintf('%06d', $id);
}
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板