سلام، وقتتون بخیر
پاسخ تمرینی که استاد صالحی حلقه while رو گذاشتن برعهده دانشجویان
در انتها یکم توضیح میدم و امیدوارم استاد نقاط قوت و ضعف رو بهم بگن
<?php
/**
*
* users list in array
*
*/
$users = array(
1 => [
'first_name' => 'Alireza',
'last_name' => 'Dehkar',
'display_name' => 'Alireza Dehkar',
'age' => 21,
'role' => 'admin',
'email' => '[email protected]',
'phone' => 989012345678,
],
2 => [
'first_name' => 'Mina',
'last_name' => 'Vafaei',
'display_name' => 'Mina Vafaei',
'age' => 27,
'role' => 'author',
'email' => '[email protected]',
'phone' => 989012345676,
],
3 => [
'first_name' => 'Mohammadreza',
'last_name' => 'Salari',
'display_name' => 'Mohammadreza Salari',
'age' => 32,
'role' => 'subscriber',
'email' => '[email protected]',
'phone' => 989012345675,
]
);
/**
*
* Print users display name & age
*
*/
$i = 1;
$count = count($users);
if ($count > 0) {
while ($i <= $count) {
echo $users[$i]['display_name'] . ' ' . $users[$i]['age'] . ' years<br>';
$i++;
}
} else {
echo 'No user found.';
}
1- چرا $i رو برابر با 1قرار دادم؟ به این دلیل که کلید های من (آی دی کاربر) از 1 شروع میشه و در دیتابیس مقدار 0 در نظر گرفته نمیشه(در این حالت که از دیتابیس استفاده ای نشده اما من دوست داشتم چنین حالتی رو ایجاد کنم)، البته میشه از توابعی استفاده کرد و کلیدهارو درون ی آرایه دیگه بریزیم یا اینکه ی آرایه indexed داشته باشید که در این حالت میشه برابر با 0 هم قرار داد که من ترجیح دادم فعلا استفاده نکنم
2- تابع count() - تعداد عناصر داخل آرایه رو برامون بازگردانی و داخل متغییر $count میریزه و ی مقدار دوم هم میگیره که اختیاریه ، اگر برابر با 0 باشه(پیشفرض) عناصر آرایه های چندبعدی رو شمارش نمیکنه و اگر 1 باشه میتونید شمارشی از آرایه های چندبعدی(multidimensional) هم داشته باشید
3- از if هم استفاده کردم تا بررسی کنم آیا کاربری وجود داره یا ن، اگر وجود داشت حلقه رو اجرا میکنه در غیراینصورت حلقه رو نادیده میگیره و ی پیام نمایش میده
4- از single quote استفاده شده به این دلیل که استاد گفتن بهینه تر هست از double quote و سرعت بالاتری داره
فکر کنم استاد فقط بخش while رو می خواستن اما ی مواردی رو اضافه کردم ک شاید مفید باشه
نظری داشتید حتما مطرح کنید، حتی اگر کل کد و توضیحات هم اشتباه بود حتما حتما بهم بگید ممنون میشم
1- دلیل اصلی قرار دادن i = 1 این نیست که شما index هاتون رو از 1 شروع کردید چون با این منطق اگه از 2 شروع میکردید باید i = 2 قرار میدادید که اگه تست کنید میبینید که به مشکل میخورید ..
دلیل اصلی i = 1 اینه که تابع count تعداد اعضای آرایه رو 3 تا نشون میده یعنی از 1 شروع به شمارش میکنه نه از صفر
2- درمورد سرعت single quote , double quote هم فکر نمیکنم در حالتی که داخلشون فقط string باشه اختلاف سرعت خاصی داشته باشند میتونید مقاله زیر رو بخونید :
https://jonczyk.me/2016/10/08/phpyths-buster-single-quotes-faster-double-quotes/