انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید

نویسنده موضوع: خطای برنامه نویسی برای حلقه for  (دفعات بازدید: 1283 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
خطای برنامه نویسی برای حلقه for
« : 20 امرداد 1392، 09:46 ق‌ظ »
سلام

عیدتون مبارک
فرض کنید یک پرونده داریم که شامل تعداد زیادی خط است که هر خط شامل تعدادی  ISBN است ( ISBN همان شابک یا شناسه انحصاری کتاب هست.)
 متاسفانه برخی خطوط تکراری هستند. برنامه ای خطوط را از پرونده می خواند وپس از پردازش در جدول پایگاه داده ها ذخیره می کند.
برای جلوگیری از پردازش مقادیر تکراری پشت سرهم در حلقه بررسی میشود که آیا مقدار فعلی با مقدار قبلی یکسان است یا نه؟

foreach ( $list->find('line') as $value ) {

if ($value == $pervious) {
echo '<br>value '.$value;
continue;
}
echo '<br>pervious '.$pervious;
$pervious = $value;
}
وقتی این شرط را
if ( $element == $pervious ) {
continue;
}
$pervious = $element;
میگذارم این خطا را میدهد.

Fatal error: Nesting level too deep - recursive dependency? in /var/www/projects/getNumber.php on line 11
متشکرم
« آخرین ویرایش: 20 امرداد 1392، 10:34 ب‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین MrGee

  • Full Member
  • *
  • ارسال: 110
  • جنسیت : پسر
پاسخ : خطای برنامه نویسی برای دو حلقه for تو درتو
« پاسخ #1 : 20 امرداد 1392، 12:49 ب‌ظ »
خب دوست عزیز چه کاریه، کافیه قبل از وارد کردن فایل به برنامه از دستور sort همراه با سویچ ‎ -uاستفاده کنید. همچنین دستور uniq هم به همین منظور ساخته شده.
برای اطلاعات بیشتر به صفحه man این دو دستور مراجعه کنید.
در ضمن php هم تابع array_unique رو برای همین کار داره.