• 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
تبدیل اعداد به رشته!
#1
یک تابع بسازم که یک رشته رو بگیره و مقدار عددی اون رو برام برگردونه و بلعکس
یعنی مثلا رشته ای شبیه MKHfjdc یک معادل عددی داشته باشه
یا ساده تر بگم یک رابطه یک به یک بین اعداد و رشته ها وجود داشته باشه که با دادن هر رشته بتونم معادل عددیش رو بگیرم و با دادن هر عدد مقدار رشته ایش!
(خیلی سخته بگم چی میخوام امیدوارم منظورمو گرفته باشیدWink)

خوب من خودم دست به کار شدم و تابع زیر رو نوشتم (من هر عدد رو بر اساس تعداد دو و تعداد یک تبدیل میکنم! به رشته)
تو تابعی که نوشتن هر کاراکتر a-j یک معادل عددی داره
a=0 b=1 c=2 d=3 e=4 f=5 g=5 h=7 i=8 j=9
خوب من برای نوشتن تعداد دو و یک هر عدد از روش زیر استفاده کردم
[عکس: 7p5z_untitled-1.png]
و اگه نفهمیدید چی شد یه نگاه به توابع زیر بندازید
کد پی‌اچ‌پی:
function AlphaToNum($Alpha){
    
$Ints=range(0,9);
    
$Alphas=range('a','j');
    
preg_match('~(.+)c([a-b])b~'$Alpha,$m);
    
$OneCount=str_replace($Alphas$Ints$m[2]);
    
$TwoCount=str_replace($Alphas$Ints$m[1]);
    return ((int)
$TwoCount*2)+(int)$OneCount;
}
function 
NumToAlpha($Num){
    
$Ints=range(0,9);
    
$Alphas=range('a','j');
    
$TwoCount=str_replace($Ints,$Alphas,(string)floor($Num/2));
    
$OneCount=str_replace($Ints,$Alphas,(string)$Num%2);    
    return 
sprintf('%sc%sb',$TwoCount,$OneCount);

با توجه به تابعی که نوشتم مثلا عدد 5 میشه این رشته :ccbb

اما مشکلی که داره اینه که فقط از 10 حرف اول الفبا استفاده میشه توشون! من میخوام از همه حروف انگلیسی با توجه به case sensitive استفاده بشه.
مشکل در واقع آلگوریتم هست![/align] کد زدن مشکلی ندارم
  پاسخ
تشکر شده توسط :
#2
http://hashids.org/php/
وبلاگ rezaonline.net/blog
سفارش برنامه نویسی reza.biz
Php , mysql , postgresql , redis , Yii and ... Cool
  پاسخ
تشکر شده توسط : ayoubsys


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان