PDA

View Full Version : سوال: برای آرایه ای که تعداد ایندکسهاش رو نمی دونم، بجای حلقه while از چه حلقه ای باید استفاده کنم؟



idocsidocs
شنبه 29 بهمن 1390, 13:17 عصر
برای آرایه ای که تعداد ایندکسهاش رو نمی دونم، بجای حلقه while از چه حلقه ای باید استفاده کنم؟

mohsen24000
شنبه 29 بهمن 1390, 13:27 عصر
for($i=0;$i<count($arr);$i++)
{
//...
}

یا


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

idocsidocs
شنبه 29 بهمن 1390, 14:52 عصر
می خوام از توابع آماده پی اچ پی استفاده کنم.
پی اچ پی برای این کار تابعی نداره؟

mtchabok
شنبه 29 بهمن 1390, 15:42 عصر
اگه منظورتون شمردن ایندکس آرایه هس که تابع count اینکار رو انجام میده ولی اگه منظورتون پیمایش در آرایه هس میتونید از foreach استفاده کنین که به صورت ساختاری در اکثر زبانها وجود داره .

idocsidocs
شنبه 29 بهمن 1390, 16:14 عصر
از list نمی شه استفاده کرد؟

MMSHFE
شنبه 29 بهمن 1390, 19:29 عصر
بله میتونید از ترکیب list و each استفاده کنید ولی foreach سریعتره. بعلاوه میتونید از تابع array_walk هم استفاده کنید. موفق باشید.

idocsidocs
شنبه 29 بهمن 1390, 19:59 عصر
بله میتونید از ترکیب list و each استفاده کنید ولی foreach سریعتره. بعلاوه میتونید از تابع array_walk هم استفاده کنید. موفق باشید.

الان دوتا ارایه دارم که باید پیمایش بشن. اگر از foreach به صورت تو در تو استفاده کنم، تعداد پردازش ها زیاد می شه.
برای دو آرایه اگر از array_walk استفاده کنم بنظرتون بهتر نیست؟

MMSHFE
شنبه 29 بهمن 1390, 20:27 عصر
بنظرم اگه حلقه بیرونی رو با array_walk روی یک تابع تنظیم کنید و هربار یک عنصر رو که خودش یک آرایه هست برای اون تابع بفرستین و بعد، اون تابع آرایه داخلی رو با foreach پردازش کنه، راندمان مناسبی کسب خواهید کرد. موفق باشید.