개발 과정에서 우리의 데이터 테이블은 일반적으로 자동 증가 숫자를 id의 기본 키로 사용하며, id는 숫자 유형이므로 이해하기 쉽지 않습니다. ID를 특정 형식에 따라 숫자로 변환하면 숫자를 기반으로 내용이 무엇을 나타내는지 쉽게 알 수 있습니다.
예를 들어 주문 테이블 id=20160111197681234. id를 O-20160111197681234로 변경하면 이 ID가 주문 테이블의 ID인지 알 수 없습니다. 주문 테이블의 기록임을 쉽게 알 수 있으며, 주문 테이블에서 해당 id를 검색하면 알 수 있습니다.
숫자 생성 규칙
1. 고유
고유성을 보장하기 위해 자동 증가 ID를 사용하여 생성
2 최대한 짧게 만드세요
나머지 숫자를 사용하여 해당 문자를 더 짧게 만들 수 있습니다. number
알고리즘 원리
1. 식별을 위한 맞춤 접두어 추가
2. 형식은 접두어 + 문자 + 숫자로 구성됩니다. 숫자를 초과하는 경우 나머지는 다음을 사용하여 계산됩니다. 문자.
<?php/** * php 根据自增id创建唯一编号类 * Date: 2016-11-27 * Author: fdipzone * Ver: 1.0 * * Func * Public create 创建编号 */class IDCode{ // class start /** * 创建编号 * @param Int $id 自增id * @param Int $num_length 数字最大位数 * @param String $prefix 前缀 * @return String */ public static function create($id, $num_length, $prefix){ // 基数 $base = pow(10, $num_length); // 生成字母部分 $pision = (int)($id/$base); $word = ''; while($pision){ $tmp = fmod($pision, 26); // 只使用26个大写字母 $tmp = chr($tmp + 65); // 转为字母 $word .= $tmp; $pision = floor($pision/26); } if($word==''){ $word = chr(65); } // 生成数字部分 $mod = $id % $base; $digital = str_pad($mod, $num_length, 0, STR_PAD_LEFT); $code = sprintf('%s-%s-%s', $prefix, $word, $digital); return $code; } } // class end?>ee.php
<?phprequire 'IDCode.class.php';$test_ids = array(1,9,10,99,100,999,1000,1009,2099,3999,9999,14999,99999);foreach($test_ids as $test_id){ echo $test_id.' = '.IDCode::create($test_id, 3, 'F').'<br>'; }?>출력:
1 = F-A-0019 = F-A-00910 = F-A-01099 = F-A-099100 = F-A-100999 = F-A-9991000 = F-B-0001009 = F-B-0092099 = F-C-0993999 = F-D-9999999 = F-J-99914999 = F-O-99999999 = F-VD-999
소스 코드 다운로드 주소: Click to view
개발 과정에서 우리의 데이터 테이블은 일반적으로 자체 증가하는 숫자를 기본 키로 사용합니다. id이고, id는 숫자형이어서 이해하기 쉽지 않습니다. ID를 특정 형식에 따라 숫자로 변환하면 숫자를 기반으로 내용이 무엇을 나타내는지 쉽게 알 수 있습니다.
예를 들어 order table id=20160111197681234라는 숫자만 보면 이 id가 order table의 id인지 알 수 없습니다. 주문 테이블의 기록임을 쉽게 알 수 있으며, 주문 테이블에서 해당 id를 검색할 수 있습니다.
숫자 생성 규칙1. 고유고유성을 보장하기 위해 자동 증가 ID를 사용하여 생성
2. 숫자의 나머지 부분을 사용하여 해당 문자를 찾아 더 짧은 숫자를 만들 수 있습니다. 알고리즘 원리
1. 식별을 위한 맞춤 접두사 추가
2. 형식은 접두사 + 문자 + 숫자로 구성됩니다. 숫자를 초과하는 경우 나머지 숫자를 사용합니다. 예: id=1 Prefix=F 숫자는 3자리입니다.생성된 숫자는
F-A-001
코드는 다음과 같습니다:
IDCode. class.php
<?php/** * php 根据自增id创建唯一编号类 * Date: 2016-11-27 * Author: fdipzone * Ver: 1.0 * * Func * Public create 创建编号 */class IDCode{ // class start /** * 创建编号 * @param Int $id 自增id * @param Int $num_length 数字最大位数 * @param String $prefix 前缀 * @return String */ public static function create($id, $num_length, $prefix){ // 基数 $base = pow(10, $num_length); // 生成字母部分 $pision = (int)($id/$base); $word = ''; while($pision){ $tmp = fmod($pision, 26); // 只使用26个大写字母 $tmp = chr($tmp + 65); // 转为字母 $word .= $tmp; $pision = floor($pision/26); } if($word==''){ $word = chr(65); } // 生成数字部分 $mod = $id % $base; $digital = str_pad($mod, $num_length, 0, STR_PAD_LEFT); $code = sprintf('%s-%s-%s', $prefix, $word, $digital); return $code; } } // class end?>
demo.php
<?phprequire 'IDCode.class.php';$test_ids = array(1,9,10,99,100,999,1000,1009,2099,3999,9999,14999,99999);foreach($test_ids as $test_id){ echo $test_id.' = '.IDCode::create($test_id, 3, 'F').'<br>'; }?>
출력:
1 = F-A-0019 = F-A-00910 = F-A-01099 = F-A-099100 = F-A-100999 = F-A-9991000 = F-B-0001009 = F-B-0092099 = F-C-0993999 = F-D-9999999 = F-J-99914999 = F-O-99999999 = F-VD-999
이 글에서는 PHP의 자동 증가 ID를 통해 고유한 숫자 클래스를 만드는 방법을 설명합니다. 더 많은 관련 콘텐츠를 보려면 주의하세요. PHP 중국어 웹사이트로 이동합니다.
관련 권장 사항:
검색 엔진 로봇 액세스와 호환되는 PHP 최적화 페이지 출력 예에 대한 설명
PHP를 통해 ffmpeg를 호출하여 비디오 정보 얻기
mysql을 사용하여 포인트가 있는지 확인 지정된 폴리곤 영역 Inside위 내용은 PHP에서 자동 증가 ID를 통해 고유 번호 클래스 생성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

PhpStorm 맥 버전
최신(2018.2.1) 전문 PHP 통합 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경
