سبد (0)

تبلیغات

آرایه ها در PHP

 آرایه ها در PHP

Wiki

آرایه ها انواع خاصی از متغیرها به حساب می آیند که می توانند چندین داده را در قالب یک نام ذخیره کنند.

اگر لیستی از آیتمها (برای مثال یک لیست از نام ماشین ها) را داشته باشیم و بخواهیم آنها را در متغیر ها ذخیره کنیم، چیزی شبیه زیر خواهیم داشت:

$cars1="Samand";
$cars2="Volvo";
$cars3="BMW";

حالا:

  • اگر لیست شما بیشتر از 3 آیتم باشد مثلاً 300تا چه کار می کنید.
  • اگر در این لیست به دنبال یک ماشین خاص باشید چه کار می کنید.

در اینجا بهترین راه حل استفاده از آرایه ها است.

یک آرایه می تواند مقادیر متغیرها را تحت یک نام برای شما نگه دارد. و شما از طریق نام آرایه می توانید به مقادیر دسترسی داشته باشید.

هر آیتم در آرایه ایندکس منحصر به فردی برای خود دارد که به راحتی از طریق ایندکس می توانید به مقادیر دسترسی پیدا کنید.

در PHP سه نوع آرایه وجود دارد:

  • آرایه عددی (Indexed array): منظور از عددی ایندکس آرایه است، یعنی یک آرایه با ایندکس عددی
  • آرایه انجمنی (Associative array): یک آرایه که بجای ایندکس عددی از یک نام یا مقدار برای ایندکس گذاری استفاده کرده است.
  • آرایه چند بعدی (Multidimensional array): یک آرایه که مقادیر هر سلول آن آرایه ای دیگر است.

آرایه عددی

Wiki

در یک آرایه عددی مقادیر هر سلول آرایه با یک ایندکس عددی مشخص می شود.

دو روش برای ایجاد چنین آرایه ای وجود دارد:

  1. در مثال زیر ایندکس به صورت اتوماتیک ساخته می شود(ایندکس از 0 شروع می شود):

    $cars=array("Samand","Volvo","BMW","Toyota");

  2. در مثال زیر به صورت دستی می توانید ایندکس را بسازید:

    $cars[0]="Samand";
    $cars[1]="Volvo";
    $cars[2]="BMW";
    $cars[3]="Toyota";

 در مثال زیر بعد از مقداردهی آرایه شما می توانید به مقادیر هر سلول به وسیله نام و ایندکس آرایه دسترسی پیدا کنید: 

<?php
$cars[0]="Saab";
$cars[1]="Volvo";
$cars[2]="BMW";
$cars[3]="Toyota";
echo $cars[0] . " and " . $cars[1] . " are Swedish cars.";
?>

خروجی کد بالا:

Saab and Volvo are Swedish cars.

توجه: با استفاده از تابع ()count، می توانید تعداد سلول های یک آرایه را تعیین نمایید.


آرایه های انجمنی

Wiki

در یک آرایه انجمنی ایندکس هر سلول از آرایه، با یک نام یونیک مشخص می شود.

زمان ذخیره مقادیر سلولها باید یک نام مشخص و یونیک به آن سلول اختصاص دهید.

مثال 1: در این مثال یک آرایه ای که سن افراد مختلف را نشان می دهد، تعریف شده است:

$ages = array("Ali"=>32, "Reza"=>30, "Amir"=>34);

مثال2: این مثال مانند قبلی است اما می تواند نشان دهد که چگونه می توانیم به روش های مختلف یک آرایه را تعریف کنیم:

$ages['Ali'] = "32";
$ages['Reza'] = "30";
$ages['Amir'] = "34";

در زیر نشان داده شده که چگونه از طریق نام و ایندکس آرایه، توانسته ایم به محتویات هر سلول آرایه دسترسی پیدا کنیم:

<?php
$ages['Ali'] = "32";
$ages['Reza'] = "30";
$ages['Amir'] = "34";

echo "Ali is " . $ages['Ali'] . " years old.";
?>

خروجی کد بالا:

Ali is 32 years old.


آرایه های چند بعدی

Wiki

هریک از عناصر آرایه در php می توانند از هر نوعی باشند پس می توانیم آرایه را نیز به عنوان عضو عناصر در نظر بگیریم. بنابراین به زبان ساده تر می توانیم یک آرایه داخل آرایه دیگر تعریف کنیم و داخل آن نیز یک آرایه دیگر و داخل آن نیز و به همین ترتیب. تعریف آرایه چندبعدی در زبان php به سادگی آرایه های معمولی است.

مثال: در این مثال یک آرایه چند بعدی تعریف شده که ایندکس آن به صورت اتوماتیک ایجاد می شود:

$families = array(array("Ali","Reza","Sara"),
                  array("Amir"),
                  array("Poya","Parniya")
                 );

اگر مایل باشید می توانید آرایه بالا را به صورت زیر تعریف کنید: (ایندکسِ مقداری)

$families = array("Ahmadi"=>array("a"=>"Ali","b"=>"Reza","c"=>"Sara"),
                  "Naderi"=>array("a"=>"Amir"),
                  "Mohamadi"=>array("a"=>"Poya","b"=>"Parniya")
                 );

 مثال: اجازه بدهید تا با یک مثال نشان دهیم که چگونه می توان به یک سلول از آرایه های چند بعدی دسترسی پیدا کرد:

echo "Is " . $families['Ahmadi']['b'] . " a part of the Ahmadi family?";

خروجی کد بالا:

Is Reza a part of the Ahmadi family?


مرتب کردن آرایه ها در PHP

Wiki

عناصر یک آرایه را می توان به صورت الفبایی یا عددی از کوچک به بزرگ (ascending) یا بزرگ به کوچک (descending) مرتب نمود.

توابع مرتب سازی آرایه ها:

  • ()sort - مرتب کردن مقادیر آرایه از کوچک به بزرگ
  • ()rsort - مرتب کردن مقادیر آرایه از بزرگ به کوچک
  • ()asort - مرتب کردن آرایه های انجمنی از نزولی به صعودی (بر اساس مقدار)
  • ()ksort - مرتب کردن آرایه های انجمنی از نزولی به صعودی (بر اساس کلید)
  • ()arsort - مرتب کردن آرایه های انجمنی از صعودی به نزولی (بر اساس مقدار)
  • ()krsort - مرتب کردن آرایه های انجمنی از صعودی به نزولی (بر اساس کلید)

در مثال زیر، آرایه انجمنی age$ بر اساس کلید، از کوچک به بزرگ مرتب شده است:

مثال (آرایه ها در PHP)

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
ksort($age);

foreach($age as $x=>$x_value)
    {
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
    }
?>

خروجی کد بالا:

Key=Ben, Value=37
Key=Joe, Value=43
Key=Peter, Value=35

در مثال زیر، آرایه انجمنی age$ بر اساس مقادیر سلول ها، از بزرگ به کوچک مرتب شده است:

مثال (آرایه ها در PHP)

<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
arsort($age);

foreach($age as $x=>$x_value)
    {
    echo "Key=" . $x . ", Value=" . $x_value;
    echo "<br>";
    }
?>

خروجی کد بالا:

Key=Joe, Value=43
Key=Ben, Value=37
Key=Peter, Value=35

برگرداندن تعداد عناصر یک آرایه

Wiki

با استفاده از تابع ()count، می توان تعداد عناصر یک آرایه را برگرداند.

مثال (آرایه ها در PHP)

برگرداندن تعداد عناصر یک آرایه:

<?php
$cars=array("Volvo","BMW","Toyota");
echo count($cars);
?>

3

نحوه استفاده:

count(array,mode);
پارامتر توضیحات
array الزامی است، نام آرایه را تعیین می کند.
mode اختیاری است، در آرایه های چند بعدی، نحوه شمارش عناصر را تعیین می کند.
  • 0: مقدار پیشفرض، در آرایه های چند بعدی، تعداد کل عناصر را برنمی گرداند.
  • 1: در آرایه های چند بعدی، تعداد کل عناصر را برمی گرداند.

نکته: پارامتر mode از php 4.2 به بعد اضافه شده است.

یک مثال دیگر از تابع ()count

مثال (آرایه ها در PHP)

تعداد عناصر، در آرایه های چند بعدی:

<?php
$cars=array
  (
  "Volvo"=>array
  (
  "XC60",
  "XC90"
  ),
  "BMW"=>array
  (
  "X3",
  "X5"
  ),
  "Toyota"=>array
  (
  "Highlander"
  )
  );

echo "Normal count: " . count($cars)."<br>";
echo "Recursive count: " . count($cars,1);
?>

Normal count: 3
Recursive count: 8

در بیاموزهای بعدی درباره ی حلقه ی foreach توضیح داده شده است.


برای مشاهده فیلم ها و آموزش های پروژه محور برنامه نویسی PHP کلیک کنید.

دیدگاه‌ها  

+1 # kazuha miller 1396-05-17 02:07
واقن کارتون عالیه....
من css و html و php رو از سایت شما درست حسابی یاد گرفتم و دارم یاد میگیرم
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # آرمان 1395-12-04 15:28
سلام و خداقوت. اگر بخوایم در مثال اخر به سبک قسمت دوم مثال اول درمورد آرایه های چند بعدی, مقادیر رو تعریف کنیم( که خود مقادیر با ایندکس مقداری نشانه گذاری بشن) چجوری باید دستور چاپ بذاریم؟ ممنون از زحماتتون
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # احسان عباسی 1395-12-09 08:41
سلام. به مثال زیر توجه کنید:
$cars=array
(
array
(
"XC60",
"XC90"
),
array
(
"X3",
"X5"
),
array
(
"Highlander"
)
);

print_r($cars[0][0]);

// XC60

پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+10 # امیرکیان 1394-09-25 01:37
ممنون از مطالب خوب سایتتون وپشتیبانی و بروزرسانی مطالب سایت
واقعا زحمت میکشید و وقت میزارید
من که استفاده کردم
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+7 # hamid fa 1394-09-25 09:52
با سلام به شما دوست عزیز و گرامی
ممنونم از این همه لطفتون به من و همکارانم
وجود شما کاربران مارو تشویق به ادامه ی کار در این سایت میکنه

موفق و موید باشید
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+5 # محسن babai 1394-07-07 11:09
باز هم ببخشید
نمیشه مثل این سایت
http://www.tutorialspoint.com/php_webview_online.php
ادیتور ازمایش کد پی اچ پی را بذارید
خیلی ممنون از سایت خوب ومفیدتون
پایدار باشید
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # محسن babai 1394-07-07 11:04
سلام خسته نباشید
اگه میشه ایندکس و یونیک را توضیح بدید

یه پیشنهاد داشتم برای کلماتی مثل ایندکس و یونیک و... توپ لینک بزارید که توضیح بده مفهومشه یا اگه توضیحش را تو سایت دارید لینک بدید به صفحه مربوطه
ممنون باتشکر
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+7 # امیر پهلوان صادق 1394-07-08 10:42
سلام، ممنون شما هم خسته نباشید.
1- مفهوم ایندکس در آرایه: با یک مثال ساده ایندکس را خدمتتون توضیح می دم، اگر جامعه ی انسان ها را یک آرایه در نظر بگیرید، هر انسان به عنوان یک سلول از آرایه خواهد شد. حالا برای دسترسی به اطلاعات انسان ها چه کار باید کرد ...!؟ خوب شماره ملی در اینجا نقش ایندکس را بازی می کند و از طریق آن می توانیم به اطلاعات هر فرد دسترسی داشته باشیم. پس ایندکس عددی است که بصورت اتوماتیک به هر سلول آرایه اختصاص داده می شود و ما از طریق آن به محتویات سول ها دسترسی پیدا می کنیم و یا مقداری را در آنها ذخیره کنیم.
2- مفهوم یونیک در آرایه: یونیک یا Unique در لغت بمعنی یکتا و منحصر بفرد است. تصور فرمایید در یک جامعه، برای دو نفر یک شماره ملی در نظر بگیریم ...! خوب با این کار دیگه نمی تونیم از طریق کد ملی به اطلاعات فقط یک نفر دسترسی داشته باشیم. پس ایندکس آرایه باید و حتماً یکتا و منحصر بفرد باشد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # ستاره 1394-05-23 13:35
لطفا توضیح بدین در مثال آخر (تعداد عناصر آرایه چند بعدی) تعداد عناصر را چطور حساب کرده؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # امیر پهلوان صادق 1394-05-23 17:11
با توجه به توضیح بالا در مورد تابع count متوجه شدید که این تابع دو پارامتر ورودی دارد:
پارامتر 1- نام آرایه ای که می خواهید عناصر آنرا شمارش کنید.
پارامتر 2- حالت شمارش عناصر که با 0 یا 1 مقداردهی می شود. توجه داشته باشید که مقدار پیشفرض 0 است یعنی اگر پارامتر دوم تابع Count را مقدار دهی نکنید با 0 تنظیم خواهد شد.
در مثال آخر مطلب بالا که مورد سوال شما نیز بوده است، حالت شمارش را هم با 0 و هم با 1 دیدیم. در پایین، دو حالت را با هم بررسی خواهیم دید:echo "Normal count: " . count($cars)."";
echo "Recursive count: " . count($cars,1)

در خط اول مثال بالا، پارمتر دوم تابع Count تنظیم نشده است بنابراین مقدار 0 در نظر گرفته شده و حالت شمارش اعضا آرایه به نحوی خواهد بود که تنها تعداد عناصری که در بعد اول قرار دارند شمارش می شود.
اما در خط دوم مثال، پارامتر دوم با 1 تنظیم شده است، بنابراین تعداد کل عناصر آرایه شمارش خواهد شد. یعنی 3 عنصر در بعد اول داریم و 5 عنصر در بعد دوم وجود دارد که جمعاً 8 عنصر خواهد شد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # محمد 1394-02-28 17:55
سلام خسته نباشید میخواستم بدونم چطور میشه در آرایه یک شی قرار داد و همچنین تعداد شی داخل این آرایه وابسته به تعداد رکوردهای موجود در دیتابیس باشه؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+6 # امیر پهلوان صادق 1394-02-28 22:32
سلام<?php
class student {
public $code=100;
public $name="amir";
public $family="pahlavan";
}
$object = new student();
$myArray[] = $object;

echo "<pre>";
print_r($myArray);
echo "</pre>";
?>
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # mehrsa 1394-01-22 12:19
من اصلا متوجه نشدم که درمـثال اول مرتب کردن آرایه ها x$ازکجا اومد؟؟واینکه چراخروجی اول benبعدjoe چاپ کرد؟؟؟مگه تعدادکلمه های ben و joeبرابرنیست؟؟؟ ازکجابدونیم کدومواول بنویسیم؟
بابت طراحی این سایتتون واقعامتشکرم وخسته نباشید
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # احسان عباسی 1394-01-22 12:43
در مثال اول، ابتدا یک آرایه می سازیم، و نام آن را age$ قرار می دهیم.
سپس در خط سوم، این آرایه را به وسیله ی دستور ksort از نزولی به صعودی مرتب می کنیم. و چون طبق حروف الفبای انگلیسی، حرف b قبل از حرف j ، و حرف j قبل از حرف p قرار می گیرد پس در آرایه ی جدید ما، ben قبل از joe قرار می گیرد و joe قبل از peter قرار می گیرد.
سپس در خط چهارم یک حلقه ی foreach ایجاد می کنیم .
کاری که این حلقه در هربار اجرا شدن انجام می دهد این است که، یک عنصر را به ترتیب از اندیس 0 از آرایه انتخاب می کند، و نام این عنصر را در متغیر x$ قرار داده و مقدار آن را در متغیر x_value$ قرار می دهد.
و سپس از انها در فرایند چاپ استفاده می کند.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # Reza Bahrami 1393-12-08 19:52
سلام
میشه گفت آرایه ها در php خیلی بهتر از زبان های برنامه نویسی دیگه هستن اگه شما لیست آرایه های php رو مثل سایت php.net توی این آموزش به همراه توضیحاتشون میزاشتین خیلی خوب میشد .
با تشکر از سایت خوبتون .
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # امیر پهلوان صادق 1393-12-09 15:16
سلام، در برنامه کاری آیندمون قرار داره ...
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # امیر خ 1393-07-19 12:19
اگر در تابع count از آرایه های تو در توی بیشتری که در مثال زدید استفاده بکنیم (مثلا سه آرایه تو در تو باشد)، باز هم با mode 1 تعداد کل عناصر را نشان می دهد ؟
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+5 # امیر پهلوان صادق 1393-07-19 13:36
دقیقاً همین طور است، با mode=1، تعداد کل عناصر آرایه برمی گردد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+5 # امیر خ 1393-07-20 00:02
متشکرم از پاسختون
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # امیر خ 1393-07-18 13:12
کاش یک مثال هم برای ()count در آرایه ها می زدید
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+4 # امیر پهلوان صادق 1393-07-19 10:31
تابع ()count در انتهای مطلب، اضافه شد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+5 # امیر خ 1393-07-19 12:10
ممنون از شما
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+12 # video clips 1393-01-17 19:07
خیلی کار قشنگی انجام دادید و به سبک سایت محبوب w3school خیلی زیبا مطالب رو آموزش میدید.
به نوبه خودم ازتون خیلی ممنونم

پیشنهاد من تبلیغات بیشتر برای این سایت مفیده
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی PHP

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

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