bestboy7

اجرا نشدن حلقه در php

3 پست در این موضوع

ارسال شده در (ویرایش شده)

سلام دوستان

کامپوننتی نوشتم یه قسمتش از یک حلقه for استفاده میکنم که شروع و پایان کونتور حلقه دوتا متغییر (st$ و en$) هست که چند خط قبل از اون محاسبه میشه

                                for ($i=count($arraymatch)-1; $i>=0 ;$i--)
	{
		if($arraymatch[$i][5]!="" and ($arraymatch[$i][1]==$team or $arraymatch[$i][2]==$team))
		{
			$current_stage=$arraymatch[$i][7];
			break;
		} 
	}
	if ($current_stage<10)
	{
		$st=1;
		$en=$current_stage;
	}else
	{
		$st=$current_stage-9;
		$en=$current_stage;
	}

و بعد از هم حلقه که به شکل زیر نوشتم

                                for ($i=$en; $i>=$st; $i--)
	{
		for ($j=0; $j<count($arraymatch); $j++)
		{
			if($arraymatch[$j][7]==$i and ($arraymatch[$j][1]==$team or $arraymatch[$j][2]==$team))
			{
				$result_match[]=$arraymatch[$j];
				break;
			}
		} 
	}

لازم هست بگم arraymatch$ یه آرایه دو بعدی هست و هدف از این چند خط ایجاد آرایه دو بعدی result_match$ که زیر مجموعه ای از arraymatch$ هست.

حالا مشکل: تا حالا وقتی آرایه arraymatch من واسه یه حالت خاص که 13 سطر داشته کار میکرده و هیچ مشکلی نبوده اما تو یه حالت خاص که 306 سطر داشته به همین خط که میرسه تو حلقه گیر میکنه. و انگار که داره محاسبه میکنه و نمای خروجی من منتظر تمام شدن خطوط برنامه میمونه (که البته زمان زیادی طول میکشه تا ارور محدودیت مدت زمان انجام میده)

چک کردم با تعداد 306 سطر مشکلی نداره که تصور کنید شاید محاسبات زیاد میشه طول میکشه

وقتی شروع و پایان حلقه رو مستقیما یک عدد (نه متغیر) وارد میکنم بدون مشکل کار میکنه.

چک میکنم دو متغیر st و en درست محاسبه میشه و عددش بدون مشکل حساب میکنه اما وقتی میشینه تو حلقه حلقه هنگ میکنه. وقتی همون اعداد متغییر رو بصورت مستقیم عدد وارد میکنم توی حلقه، حلقه کار میکنه

موندم مشکلش چیه؟

ویرایش شده در توسط bestboy7

Share this post


Link to post
Share on other sites
آموزش ووکامرس قالب جوملا قالب وردپرس قالب رایگان وردپرس قالب رایگان جوملا هاست نامحدود هاست جوملا هاست لاراول هاست وردپرس هاست ارزان هاست ربات تلگرام خرید دامنه آموزش ساخت ربات تلگرام با php آموزش لاراول آموزش cPanel آموزش php آموزش فرم ساز RSform آموزش ساخت ربات جذب ممبر آموزش ساخت ربات دوستیابی آموزش ساخت ربات فروشگاهی برای ووکامرس آموزش طراحی سایت داینامیک با php آموزش بخش پشتیبانی با rsticket

من متوجه این حلقه نشدم دقیقا... میشه کل حلقه که نوشتی رو قرار بدی؟ دو قسمت نکنیش اگر امکان هست.

Share this post


Link to post
Share on other sites

چشم آقا نیما اینم این دو تیکه همش حلقه نبود قسمت اول بخشی بود که دو متغییر شروع و پایان حلقه رو بدست میاره بعد قسمت دوم حلقه بود

	$result_match=array();
	$current_stage=1;
	for ($i=count($arraymatch)-1; $i>=0 ;$i--)
	{
		if($arraymatch[$i][5]!="" and ($arraymatch[$i][1]==$team or $arraymatch[$i][2]==$team))
		{
			$current_stage=$arraymatch[$i][7];
			break;
		} 
	}
	if ($current_stage<10)
	{
		$st=1;
		$en=$current_stage;
	}else
	{
		$st=$current_stage-9;
		$en=$current_stage;
	}
	for ($i=$en; $i>=$st; $i--)
	{
		for ($j=0; $j<count($arraymatch); $j++)
		{
			if($arraymatch[$j][7]==$i and ($arraymatch[$j][1]==$team or $arraymatch[$j][2]==$team))
			{
				$result_match[]=$arraymatch[$j];
				break;
			}
		} 
	}

این حلقه آخر همون حلقه ای هست که میگم هنگ میکنه

Share this post


Link to post
Share on other sites

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری