دوره مجازی PHP (جلسه 13): توابع php - کار با آرایه ها

- visibility ۳۸ mode_comment

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

در جلسه ی امروز می خوایم در مورد کار با آرایه ها صحبت کنیم و توابع مهم PHP در این زمینه رو معرفی کنیم . در پایان این جلسه هم یه مینی پروژه ی کوچیک رو داریم که در اون لیستی از مخاطبین رو بر اساس نا، شماره تماس و جنسیتشون جستجو می کنیم .

:: مطالب مطرح شده در این جلسه عبارتند از :

توابع کار با آرايه ها در PHP :

  • ساخت يک آرايه
  • شمارش تعداد عناصر آرايه
  • چک کردن وجود يک کليد در آرايه
  • چک کردن حضور يک مقدار در آرايه
  • دريافت همه يا بخشي از کليد هاي يک آرايه
  • دريافت همه ي مقادير موجود در آرايه
  • تغير حروف همه ي کليدهاي آرايه
  • شکستن آرايه به چند بخش
  • ايجاد يک آرايه با ترکيب دو آرايه ي کليدها و مقادير
  • دريافت تعداد تکرار اعضاي آرايه
  • بدست آوردن تفاوت دو آرايه با همديگر
  • پر کردن بخشي از آرايه با مقادير خاص
  • فيلتر کردن اعضاي ارايه با استفاده از يک تابع callback
  • جابجايي کليدها و مقادير يک آرايه با همديگر
  • محاسبه ي اشتراک دو آرايه
  •  ادغام و اجتماع دو آرايه
  • مخلوط کردن آرايه به صورت تصادفي
  • توابع مرتب سازي آرايه ها
  • پرکردن آرايه از مقادير تا طول خاص
  • اضافه کردن يک عنصر به انتهاي آرايه
  • برداشتن آخرين عضو آرايه
  • محاسبه ي حاصل جمع و ضرب کل عناصر آرايه
  • برداشتن يک يا چند عنصر از آرايه به صورت تصادفي و رندم
  • جايگزيني عناصر آرايه با عناصر يک آرايه ي ديگر
  • معکوس کردن آرايه
  • جستجو در آرايه
  • دريافت يک زير آرايه از آرايه ي بزرگتر
  • حذف عناصر تکراري از آرايه
  • اعمال يک تابع براي اجرا بر روي تک تک عناصر آرايه
  • استخراج متغير از اعضاي آرايه
  • ميني پروژه : مديريت، جستجو و فيلتر کردن جدول مخاطبين تلفن
  • تمرين
info توجه

این مطلب یک جلسه از دوره حرفه ای PHP می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

ثبت نام در دوره حرفه ای PHP

comment دیدگاه کاربران
میلاد رش

سلام استاد بنده تا کی پشتیبانی دارم ( به پرسش هام پاسخ میدید) تازه به این فصل رسیدم متاسفانه خیلی کند فصل ها رو دنبال کردم ولی دیگه به روند اموزشیم سرعت بخشیدم…

لقمان آوند

سلام
تو بخش نظرات مطالب دوره سوالاتون رو بپرسید همیشه جواب میدیم .
موفق باشید

Massud Tarekhi

با سلام
استاد چگونه می توم تابعی رو بنویسم که در تابع array_walk اگر عدد فرد بود اون رو به آرایه برگردونه ولی اگه زوج بود حذف کنه

لقمان آوند

برای اینکار بهتره از تابع array_filter استفاده کنید . مثالش در اینجا آورده شده .
array_walk بیشتر برای اینه که یه کار خاص رو روی همه اعضای آرایه اعمال کنید .

shahriar rad

با سلام و درود

آقای آوند چرا به جای اینکه ما در پروژه از false==! استفاده کنیم از true === استفاده نکردیم؟

لقمان آوند

بستگی به مقایسمون داره و چیزی که داریم مقایسش می کنیم. مثلا یه تابع جستجو هست که اگر پیدا نکنه false بر می گردونه و اگه چیزی پیدا کنه ایندکس محل یافتن رو بر میگردونه. خوب اینجا برای اینکه ببینیم چیزی پیدا کرده باید مقایسه کنیم که آیا مخالف فالس هست یا نه! مقایسه با true اینجا کارایی نداره برای نمونه.

mohammad

سلام استاد
چرا در اکثر نمونه های آموزشی و مینی پروژه ها درجایی که میشه بدون استفاده از متغیر کاری رو انجام داد ابتدا مثلا مقداری که تابع خاص برمیگردونه و یا ایندکس های آرایه های post و get رو توی متغیر ذخیره میکنید ؟
مگه استفاده بیش ازحد از متغیر ها موجب درگیری بی مورد رم و سایر منابع سرور نمیشه ؟

آیا اصولا درسته که در یک فایل php که کد های php میان html استفاده شده چند بار تگ php رو باز و بسته کنیم به طوری که یکبار توابع رو از فایلی فراخوانی کنیم و سپس در هر قسمت از کد html از تابع ها به صورت جدا استفاده کینم ؟

لقمان آوند

سلام
خوب اگر یکبار تابع صدا زده بشه و نتیجش تو یه متغیر قرار بگیره بعدا می تونیم با همون متغیر کار کنیم به جای اینکه چندین بار تابع رو صدا بزنیم که زمان اجرای بالاتری ببره . برای گت و پست هم خیلی جالب نیست مستقیما این آرایه رو در جاهای مختلف درگیر کنیم و احتما خطا و تغیر محتویاتش بالاتر میره .
_
بله این کار در php عرف و کاملا معمولی و پراستفاده هست . مشکلی نداره .

سیروان

استاد سابمیت چیست؟؟؟ فکر کنم میدونم ولی معنی اسمشو یادم رفه
استاد این عکس زیر رو ببینید
http://rozup.ir/view/1414596/3-31-2016%201-40-42%20AM.png

operand این کلمه رو خودتون تعریف کردید؟مثل متغیر و…؟؟یا تابعه ؟varچکاری میکنه در این کد؟؟؟

وحید صالحی

submit یعنی ارسال کردن, var هم مخفف variable به معنی متغیر هست و در بعضی زبانها مثل جاوااسکریپت برای تعریف یک متغییر ازش استفاده می شه و عبارتی هم که بعدش قرار می گیره که در این تصویر operand هست نام متغییر هست که هر کلمه ای رو میشه بجاش استفاده کرد و هر جا در تابع یا پروژه از این نام استفاده بشه مقداری رو که توسط علامت مساوی جلوش هست رو بر می گردونه و میشه ازش استفاده کرد:
مثلا var operand=1 که حالا هر جا در طول کدنویسی و پروژه از operand استفاده بشه یعنی 1 که این تنها یک مثال ساده برای درک بهتر این مورد بود…
موفق باشید

حسین محمدی

سلام من فایل های شما رو تو یک سایت دیگه دیدم که بصورت رایگان قرار دادن اینم ادرسش

لقمان آوند

سلام
بهشون تذکر دادیم و قرار شد بردارن.
متاسفانه بعضی ها خیلی راحت حق الناس رو می خورن …

Pourya Ariyafar

سلام استاد
من اومدم از تابع array_walk استفاده کردم تا مقادیر یک آرایه رو به حروف بزرگ تبدیل کنم، ب نظرم همه چی رو درست نوشتم ولی در خروجی فقط مقدار true رو میگیرم درحالی که من میخوام مقادیر آرایه با حروف بزرگ چاپ شن
اینم کد

ممنون

لقمان آوند

مقدار برگشتی تابع array_walk یا true هست یا فالس …
با این تابع شما صرفا می تونید یک تابع خاص رو رو تک تک عناصر ارایه صدا بزنید.
در واقع شما باید بعدش خو آرایه رو چاپ کنید و ببینید …
یا اینکه تو toUpper مقدار بزرگ شده رو چاپ می کردید .

ppp

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

مشکل من اینه این عکسو ببینید .
http://rozup.ir/view/2305047/kopr.png

از تابع array_diffهم استفاده کردم اما این مشکلو داره که از اول ارایه دو تا حذف میکنه در حالی که من میخوام مشابه اون ارایه دومی در ارایه اولی حذف بشه .

ممنونتون میمشم استاد

لقمان آوند

اینجور مواقع باید خودتون الگوریتمشو در بیارید. خدمت شما :

function myArrayDiff($arr1,$arr2){
	$ar2Ids = array();
	foreach($arr2 as $a2){
		$ar2Ids[] = $a2[‘id’];
	}

	$resultArr = array();
	foreach($arr1 as $a1){
		if(!in_array($a1[‘id’],$ar2Ids)){
			$resultArr[] = $a1;			
		}
	}
	return $resultArr;
}

$arr1 = array(
	array(‘id’=> 1 , ‘title’=> “title1”,’hex’=> “h1”),
	array(‘id’=> 2 , ‘title’=> “title2”,’hex’=> “h2”),
	array(‘id’=> 3 , ‘title’=> “title3”,’hex’=> “h3”),
	array(‘id’=> 4 , ‘title’=> “title4”,’hex’=> “h4”),
);
$arr2 = array(
	array(‘id’=> 1 , ‘title’=> “title1”,’hex’=> “h1”),
	array(‘id’=> 3 , ‘title’=> “title3”,’hex’=> “h3”),
);

$myDiff = myArrayDiff($arr1,$arr2);
print_r($myDiff);

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.
1 2