استفاده از حلقه در آرایه ها و شرط ها

پرسیده شده
فعالیت 1360 روز پیش
دیده شده 617 بار
0

سلام دوستان.
میخواستم بدونم در دو حالت زیر:

'reply_markup' => array(
        'resize_keyboard' => true,
        'keyboard' => array(
            array('1','2'),
            array('3','4'),
            array('5','6'),
            array('7','8'),
            array('9','10'),
            array('11','12'),
            array('13','14'),
            array('15','16'),
            array('17','18'),
            array('19','20'),
            array('21','22'),
            array('23','24'),
            array('25','26'),
            array('27','28'),
            array('29','30','31'),
            array('بازگشت')
        )

و

...}elseif
(
    $text == '1' ||
    $text == '2' ||
    $text == '3' ||
    $text == '4' ||
    $text == '5' ||
    $text == '6' ||
    $text == '7' ||
    $text == '8' ||
    $text == '9' ||
    $text == '10' ||
    $text == '11' ||
    $text == '12' ||
    $text == '13' ||
    $text == '14' ||
    $text == '15' ||
    $text == '16' ||
    $text == '17' ||
    $text == '18' ||
    $text == '19' ||
    $text == '20' ||
    $text == '21' ||
    $text == '22' ||
    $text == '23' ||
    $text == '24' ||
    $text == '25' ||
    $text == '26' ||
    $text == '27' ||
    $text == '28' ||
    $text == '29' ||
    $text == '30' ||
    $text == '31'
){...

چطور میشه از توابع یا حلقه ها طوری استفاده کرد که بقیه موارد اتوماتیک تولید بشن؟

تعداد تکرار ثابته و مربوط به روزهای ماه هستش در ربات تلگرام.

فانکشن امتحان کردم اجرا نشد. حلقه ها رو هم تو هیچکدوم نمی پذیره.

فایل پیوست

امیرحسین شکری
امیرحسین شکری

17 مرداد 99

0
حذف شده

سلام

متوجه منظورتون نشدم. دقیقا می خواید چیکار کنید. بیشتر در مورد این کدتون توضیح بدید

فایل پیوست

لقمان آوند

توسط

لقمان آوند

17 مرداد 99

حذف شده
سلام و عرض ادب خدمت شما استاد. در مورد کد اول میخواستم بدونم میشه یک حلقه یا تابع درون بعد دوم آرایه تعریف کرد طوری که اون آرایه های تکراری، خود به خود تولید بشن و توی کد قرار بگیرن؟ در مورد کد دوم هم سوالم همینه. همونطور که مشاهده میکنید کلی شرط تکراری وجود داره. میشه حلقه یا تابعی درون بلاک کاندیشن تعریف کرد؟ چون مطمئنا این نوع کد بهینه نیست.
امیرحسین شکری

17 مرداد 99

حذف شده
در واقع در قطعه کد اول کاربر «شماره یک روز از ماه» رو وارد میکنه و در قطعه کد دوم اگر هر کدوم از اون 31 تا عدد وارد شده بود اونرو توی دیتابیس ذخیره میکنه. موفق هم شدم اما کدش خیلی زیاده ! دنبال یک روش بهینه تر هستم استاد.
امیرحسین شکری

17 مرداد 99

0
حذف شده

سلام دوست عزیز

ی تابع ساده نوشتم که ب جای $key مقداری که کاربر وارد کرده جایگذاری میشه

بررسی به اینصورت انجام میشه که اگر عدد وارد شده بین ۱ تا ۳۱ باشه مقدار true بازگردانی میشه در غیر اینصورت false

function is_exists_keyboard($key)
{
    # Check if is exists keyboard num
    return (intval($key) && $key <= 31) ? true : false;
}


/**
*
* Results
*
*/

echo is_exists_keyboard(0); // false

echo is_exists_keyboard(1); // true

echo is_exists_keyboard(7); // true

echo is_exists_keyboard(32); // false

 

و با تابع بالا دستور if شما به اینصورت میشه و نیازی به طولانی شدن کد نیست، هر عددی که کاربر وارد کرده رو شما میزاری جای عدد ۵ و بررسی رو انجام میدی

 

if ( is_exists_keyboard( 5 ) ) {
    # return true
} else {
    # return false
}

 

میشد همون کد داخل تابع رو مستقیم در if استفاده کنی اما اگر بخوای چندین بار استفاده کنی و زمانی نیاز به تغییر داشته باشه دردسر نداری و میدونی کجا رو باید تغییر بدی و حداقل از تکراری شدن کد جلوگیری میکنی

فایل پیوست

علیرضا دهکار

توسط

علیرضا دهکار

18 مرداد 99

حذف شده
سلام و عرض ادب جناب دهکار. دست گلتون درد نکنه. تابع بسیار خوبیه. منتها مشکل اینجاست که من این کد رو برای بات تلگرام میخوام و توی بات راهی نیست که بشه منتظر ورودی از کاربر موند. در واقع هر کدوم از ایندکس های آرایه در کد اول، تبدیل به یک کلید میشه. اگر کاربر هر کدوم از اون کلیدها (اعداد) رو انتخاب کنه، اون عدد در متغیر text قرار میگیره وارد else if (کد دوم) میشه و روش پردازش انجام میشه. برای همین بنده دنبال راهی بودم که فقط بتونم اون آرایه ها رو اتوماتیک تولید کنم و در کد قرار بدم. باز هم سپاس از شما.
امیرحسین شکری

20 مرداد 99