recherche

Maison  >  Questions et réponses  >  le corps du texte

Méthode pour encapsuler les nombres dans une limite de 6 à 8 caractères

<p><br /></p> <pre class="brush:php;toolbar:false;">fonction statique publique generateReceiptNumber(int $id) { $receipt_number = sprintf('%06d', $id % 100000000); renvoie $numéro_de_reçu ; }</pré> <p>J'utilise le code ci-dessus pour convertir le $id entrant en un nombre minimum de 6 chiffres et maximum 8 chiffres. Par exemple : 000001 - 99999999</p> <p>Mais il y a un défaut dans ce code. Lorsque $id est égal à 100000000, il renverra 000000. Comment dois-je améliorer le code ci-dessus pour renvoyer 000001 ? </p> <p>Par analogie, $id est l'ID auto-incrémenté de la base de données. </p> <p>La raison pour laquelle je souhaite y parvenir est que j'ai une zone de texte affichée avec une limite de texte de seulement 8 chiffres et je ne peux que compter les nombres à partir de 000001 et continuer à répéter. </p>
P粉315680565P粉315680565555 Il y a quelques jours641

répondre à tous(2)je répondrai

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


    Veuillez vérifier si cette réponse vous aide

    répondre
    0
  • P粉863295057

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

    Que pensez-vous de ceci :

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

    répondre
    0
  • Annulerrépondre