搜尋

首頁  >  問答  >  主體

將數字封裝為6至8位元字元限制的方法

<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粉315680565P粉315680565555 天前640

全部回覆(2)我來回復

  • P粉403804844

    P粉4038048442023-08-11 09:20:43



    
    
    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;
    }
    


    請看這個答案是否能幫助

    回覆
    0
  • P粉863295057

    P粉8632950572023-08-11 00:36:54

    這怎麼樣:

    function generateReceiptNumber(int $id)
    {
        while($id>=100000000)
            $id -= 100000000 - 1;
        return sprintf('%06d', $id);
    }

    回覆
    0
  • 取消回覆