@mehranmarandi90
@mhyeganeh
@ali.bayat
@hesammousavi
سلام
قطعه کد زیر را توی لاراول نوشتم در کنترلر
کارش اینه که کاربر وقتی لیستی از موبایل ها را وارد یک textarea میکنه این کد شماره های خراب و ردیف هایی که اصلا شماره نیستن را حذف میکنه و همینور ردیف های تکراری را و در نهایت یک لیست شماره های موبایل تمیز تحویل میده
خواستم بدونم آیا راهی دارین که این کد بهینه تر بشه و روی تعداد شماره های بالای 100000 تا هم راحت جواب بده ؟
من اومدم برای ردیف های زیاد از Arraychunk استفاده کردم و اگر راه بهتری دارید بگید
سپاس
$text = trim($request->mobiles);
$textAr = explode("\r\n", $text);
$product_list = [];
foreach (array_chunk($textAr, 10) as $numbers) {
foreach ($numbers as $line) {
$persian = ['۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹'];
$english = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
$line = str_replace($persian, $english, $line);
if (preg_match('/^(?:98|\+98|0098|0)?9[0-9]{9}$/', $line, $match)) {
$product_list[] = $match;
}
}
}
$js = json_encode($product_list);
$js2 = str_replace(str_split('[]"'), "", $js);
$js3 = explode(",", $js2);
$textAr_unique = array_unique($js3);
$final_numbers_text = implode("\n", $textAr_unique);
salam vaghteton bekhyer!
$re = '/(0|\+98)?([ ]|-|[()]){0,2}9[1|2|3|4]([ ]|-|[()]){0,2}(?:[0-9]([ ]|-|[()]){0,2}){8}/m';
$str = '09174811484
9174811484
+989174811484';
preg_match_all($re, $str, $matches, PREG_SET_ORDER, 0);
in ye array return mikone ke faghat shomare mobile toshe
age mikhay duplicate nabashe
hamaro posh *** to 1 array injori filed haye tekrari pak mishe
@Rp76
سپاس بابت پیشنهاد
اجراش کردم و به این دلیل هنوز بهترین پاسخ نزدم که ببینم پیشنهاد دوباره ای برای بهتر شدن و سریعتر شدن کد داری ؟ 😁😁😁
الان من با کدی که نوشتم تست کردم 700000 تا شماره را راحت توی کمتر از 0.6ثانیه میزنه تو دیتابیس و تمیزشونم میکنه
میخوام ببینم میشه سرعتشو بالاترم برد ؟
چون چیزی که مینویسم همش با تعداد ردیف و تعداد شماره خیلی بالا کار داره
سپاس
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟