suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Methode zum Kapseln von Zahlen in maximal 6 bis 8 Zeichen

<p><br /></p> <pre class="brush:php;toolbar:false;">öffentliche statische Funktion genericReceiptNumber(int $id) { $receipt_number = sprintf('%06d', $id % 100000000); return $receipt_number; }</pre> <p>Ich verwende den obigen Code, um die eingehende $id in eine mindestens 6-stellige, maximal 8-stellige Zahl umzuwandeln. Zum Beispiel: 000001 - 99999999</p> <p>Aber es gibt einen Fehler in diesem Code. Wenn $id gleich 100000000 ist, wird 000000 zurückgegeben. Wie sollte ich den obigen Code verbessern, um 000001 zurückzugeben? </p> <p>Analog dazu ist $id die automatisch inkrementierte ID der Datenbank. </p> <p>Der Grund, warum ich dies erreichen möchte, ist, dass ich ein Anzeigetextfeld mit einer Textbeschränkung von nur 8 Ziffern habe und ich die Zahlen nur von 000001 an hochzählen und immer wieder wiederholen kann. </p>
P粉315680565P粉315680565474 Tage vor593

Antworte allen(2)Ich werde antworten

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


    请查看这个答案是否能帮助

    Antwort
    0
  • P粉863295057

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

    这怎么样:

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

    Antwort
    0
  • StornierenAntwort