نمایش نتایج 1 تا 10 از 10

نام تاپیک: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

  1. #1

    Question چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

    چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟


    اول میخوام کاری کنم که مقدار ورودی که از دیتابیس صدا میزنم به ازای هر 3 فاصله بین کلمات یک جمله بیاد علامت , بزاره


    $value="من می خواهم,کلمات تکراری را,یک جمله را,پیدا نموده و,کلمات تکراری را,از جمله حذف,کنم";


    بعد میخوام جلمه های سه کلمه ای که ایجاد میشن به واسطه کارکتر , بررسی و جملات تکراری حذف کنم مثل زیر بشه

    "من می خواهم,کلمات تکراری را,یک جمله را,پیدا نموده و,کلمات تکراری را,از جمله حذف,کنم";



    یا اینکه وقتی من اطلاعات از دیتابیس صدا میزنم و هر جا در جمله فاصله وجود داشت اونها رو با کارکتر , تغییر میدم مانند زیر

    مقدار

    $value="من می خواهم کلمات تکراری در یک جمله را پیدا نموده و کلمات تکراری را از جمله حذف کنم";

    کد

    $rpl=str_replace(' ',',',$value);


    نتیجه
    کد HTML:
    $rpl_value="من,می,خواهم,کلمات,تکراری,در,یک,جمله,را,پیدا,نموده,و,کلمات,تکراری,را,از,جمله,حذف,کنم";

    بعدش میخوام کاری کنم که مقدار rpl_value به صورت زیر نمایش داده بشه
    کد HTML:
    $exit="من,می,خواهم,کلمات,تکراری,در,یک,جمله,را,پیدا,نموده,و,از,حذف,کنم";

  2. #2
    کاربر جدید آواتار roxment
    تاریخ عضویت
    آذر 1399
    محل زندگی
    Tehran
    پست
    26

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟


    $Data="من,می,خواهم,کلمات,تکرار ,در,یک,جمله,را,پیدا,نموده,و, لمات,تکراری,را,از,جمله,حذف, نم"
    ;$DataEx=explode(',',$Data);
    $FilterArr=array();$NewData='';for($x=0; $x<=count($DataEx)-1; $x++){
    if (!in_array($DataEx[$x], $FilterArr)) { array_push($FilterArr, $DataEx[$x]); $Ch=''; if($x!=0){ $Ch=','; } $NewData=$NewData.$Ch.$DataEx[$x]; }}var_dump($NewData);






  3. #3
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

    $rpl_value="من,می,خواهم,کلمات,تکر  اری,در,یک,جمله,را,پیدا,نموده  ,و,کلمات,تکراری,را,از,جمله,ح  ف,کنم";
    $rpl_array = explode(',' , $rpl_value);
    $stack = [] ;
    foreach( $rpl_array as $k=>$v )
    {

    if(in_array($v , $stack))
    {
    unset($rpl_array[$k]);
    continue ;
    }

    $stack[] = $v ;

    }

    echo $result = implode(',' , $rpl_array) ;

  4. #4

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

    تشکر کار میکنه

    $Data="من,می,خواهم,کلمات,تکرار ,در,یک,جمله,را,پیدا,نموده,و, لمات,تکراری,را,از,جمله,حذف, نم";

    $DataEx=explode(',',$Data);

    $FilterArr=array();

    $NewData='';

    for($x=0; $x<=count($DataEx)-1; $x++)

    {

    if (!in_array($DataEx[$x], $FilterArr))

    {

    array_push($FilterArr, $DataEx[$x]);

    $Ch='';

    if($x!=0)

    {

    $Ch=',';

    }

    echo $result=$NewData.$Ch.$DataEx[$x]; }

    }


    تشکر درست کار میکنه فقط یک سوال الان گفتم که متغیر result را بیاد و شروع کنه کارکتر , به فاصله عوض کنه و جالا چطوری میتونم بگم که بعدش بیاد بشماره هر 4 فاصله ای که شمرد در پنجمی یک کارکتر , بزاره یعنی اینجوری بشه


    $result="من,می,خواهم,کلمات,تکرا ی,در,یک,جمله,را,پیدا,نموده,و ,کلمات,تکراری,را,از,جمله,حذف ,کنم";

    $value=str_replace(',',' ',$result);


    نتیجه


    $exit="من می خواهم کلمات تکراری,در یک جمله را پیدا,نموده و کلمات تکراری را,از جمله حذف کنم";


    آخرین ویرایش به وسیله hamidhassas : شنبه 29 آذر 1399 در 09:41 صبح

  5. #5

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟


    $rpl_value="من,می,خواهم,کلمات,تکر اری,در,یک,جمله,را,پیدا,نموده ,و,کلمات,تکراری,را,از,جمله,ح ف,کنم";

    $rpl_array = explode(',' , $rpl_value);

    $stack = [] ;

    foreach($rpl_array as $k=>$v)

    {

    if(in_array($v , $stack))

    {

    unset($rpl_array[$k]);

    continue ;

    }

    $stack[] = $v ;

    }

    $result = implode(',' , $rpl_array);



    تشکر درست کار میکنه فقط یک سوال الان گفتم که متغیر result را بیاد و شروع کنه کارکتر , به فاصله عوض کنه و جالا چطوری میتونم بگم که بعدش بیاد بشماره هر 4 فاصله ای که شمرد در پنجمی یک کارکتر , بزاره یعنی اینجوری بشه

    کد HTML:
    $result="من,می,خواهم,کلمات,تکراری,در,یک,جمله,را,پیدا,نموده,و,کلمات,تکراری,را,از,جمله,حذف,کنم";
    $value=str_replace(',',' ',$result);
    نتیجه

    کد HTML:
    $exit="من می خواهم کلمات تکراری,در یک جمله را پیدا,نموده و کلمات تکراری را,از جمله حذف کنم";

    آخرین ویرایش به وسیله hamidhassas : شنبه 29 آذر 1399 در 09:38 صبح

  6. #6
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

    این یه روش کم کد تر



    $rpl_value="من,می,خواهم,کلمات,تکر اری,در,یک,جمله,را,پیدا,نموده ,و,کلمات,تکراری,را,از,جمله,ح ف,کنم";
    $stack = [] ;
    $output = '' ;
    foreach( explode(',' , $rpl_value ) as $k=>$v )
    {
    if(in_array($v , $stack))
    continue ;

    $stack[] = $v ;
    $output .= count($stack) % 4 == 0 ? "$v," : "$v " ;

    }


    echo $output ;


  7. #7
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

    .........................
    آخرین ویرایش به وسیله plague : دوشنبه 08 دی 1399 در 12:32 عصر

  8. #8
    کاربر دائمی آواتار plague
    تاریخ عضویت
    آبان 1388
    محل زندگی
    اهواز
    پست
    2,360

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

    $Data="من,می,خواهم,کلمات,تکرار    �,در,یک,جمله,را,پیدا,نموده,و  ,�  �لمات,تکراری,را,از,جمله,حذف  ,�  �نم"
    ;$DataEx=explode(',',$Data);
    $FilterArr=array();$NewData='';for($x=0; $x<=count($DataEx)-1; $x++){
    if (!in_array($DataEx[$x], $FilterArr)) { array_push($FilterArr, $DataEx[$x]); $Ch=''; if($x!=0){ $Ch=','; } $NewData=$NewData.$Ch.$DataEx[$x]; }}var_dump($NewData);


    البته جسارت نباشه دوست عزیز ولی یه نکته رو میخام بهتون بگم که من مدتها پیش متوجه شدم با وجد سادگی توی کد های طولانی خیلی خوانایی رو بهتر میکنه

    وقتی شرطی میخای بنویسی که یک حالتش نامطلوب داره (یعنی حالتی که در صورت وجودش نمیخای عملیات انجام بشه )
    اول حالت منفی / نامطلوب رو چک کن و در صورت وجودش عملیات رو قطع کن
    اینجوری دیگه برای حالت مطلوب نیاز نیست اسکوپ بزاری که باعث میشه پیچیدگی کد خیلی کمتر بشه


    مثلا بجای



    if( $ok )
    {
    //do stuff
    }
    else
    {
    exit("error");
    }



    میتونی بنویسی



    if( !$ok )
    exit("error");


    //do stuff



    حالا با همین قاعده کد شما



    for($x=0; $x<=count($DataEx)-1; $x++)
    {
    if (!in_array($DataEx[$x], $FilterArr))
    {
    //do stuff
    }
    }




    میتونه اینجوری نوشته بشه


    for($x=0; $x<=count($DataEx)-1; $x++)
    {
    if (in_array($DataEx[$x], $FilterArr))
    continue ;

    //do stuff

    }

  9. #9
    کاربر جدید آواتار roxment
    تاریخ عضویت
    آذر 1399
    محل زندگی
    Tehran
    پست
    26

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

    نقل قول نوشته شده توسط plague مشاهده تاپیک
    $Data="من,می,خواهم,کلمات,تکرار    �,در,یک,جمله,را,پیدا,نموده,و  ,�  �لمات,تکراری,را,از,جمله,حذف  ,�  �نم"
    ;$DataEx=explode(',',$Data);
    $FilterArr=array();$NewData='';for($x=0; $x<=count($DataEx)-1; $x++){
    if (!in_array($DataEx[$x], $FilterArr)) { array_push($FilterArr, $DataEx[$x]); $Ch=''; if($x!=0){ $Ch=','; } $NewData=$NewData.$Ch.$DataEx[$x]; }}var_dump($NewData);


    البته جسارت نباشه دوست عزیز ولی یه نکته رو میخام بهتون بگم که من مدتها پیش متوجه شدم با وجد سادگی توی کد های طولانی خیلی خوانایی رو بهتر میکنه

    وقتی شرطی میخای بنویسی که یک حالتش نامطلوب داره (یعنی حالتی که در صورت وجودش نمیخای عملیات انجام بشه )
    اول حالت منفی / نامطلوب رو چک کن و در صورت وجودش عملیات رو قطع کن
    اینجوری دیگه برای حالت مطلوب نیاز نیست اسکوپ بزاری که باعث میشه پیچیدگی کد خیلی کمتر بشه


    مثلا بجای



    if( $ok )
    {
    //do stuff
    }
    else
    {
    exit("error");
    }



    میتونی بنویسی



    if( !$ok )
    exit("error");


    //do stuff



    حالا با همین قاعده کد شما



    for($x=0; $x<=count($DataEx)-1; $x++)
    {
    if (!in_array($DataEx[$x], $FilterArr))
    {
    //do stuff
    }
    }




    میتونه اینجوری نوشته بشه


    for($x=0; $x<=count($DataEx)-1; $x++)
    {
    if (in_array($DataEx[$x], $FilterArr))
    continue ;

    //do stuff

    }
    فرمایش شما کاملا درست هست اما متسفانه طی سال های اخیر همیشه پروژه های من در فشار زمانی بوده و همچنین اکثر اوقات انفرادی و عادت کردم به این سبک کد نویسی ولی صحبت شما صحیح است چون در کار تیمی باعث ایجاد مشکل می شود کلا یک برنامه نویس همیشه باید در حال اپدیت و برطرف کردن عادات بد خود باشد

  10. #10

    نقل قول: چطور میتوان کلمات تکراری در یک جمله فارسی را پیدا و آنها را از جمله حذف و سپس چاپ نمود؟

    تشکر درست کار میکنه فقط یک سوال الان گفتم که متغیر result را بیاد و شروع کنه کارکتر , به فاصله عوض کنه و جالا چطوری میتونم بگم که بعدش بیاد بشماره هر 4 فاصله ای که شمرد در پنجمی یک کارکتر , بزاره یعنی اینجوری بشه

    کد HTML:
    $result="من,می,خواهم,کلمات,تکراری,در,یک,جمله,را,پیدا,نموده,و,کلمات,تکراری,را,از,جمله,حذف,کنم";
    $value=str_replace(',',' ',$result);
    نتیجه

    کد HTML:
    $exit="من می خواهم کلمات تکراری,در یک جمله را پیدا,نموده و کلمات تکراری را,از جمله حذف کنم";

تاپیک های مشابه

  1. پاسخ: 4
    آخرین پست: یک شنبه 25 خرداد 1393, 20:04 عصر
  2. چطور میتوان پیش فرض ورودی text box ها را فارسی کرد
    نوشته شده توسط farrin در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: سه شنبه 12 دی 1391, 16:46 عصر
  3. پاسخ: 0
    آخرین پست: یک شنبه 30 مهر 1391, 23:39 عصر
  4. پاسخ: 0
    آخرین پست: سه شنبه 31 مرداد 1391, 12:55 عصر
  5. چگونه میتوان در VB به اطلاعات جدول فاکس پرو دسترسی پیدا کرد
    نوشته شده توسط habdolah در بخش برنامه نویسی در 6 VB
    پاسخ: 12
    آخرین پست: سه شنبه 31 خرداد 1384, 11:44 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •