خانه آموزش زبان برنامه نویسی PHP آموزش آرایه ها (array) در Php

آموزش آرایه ها (array) در Php

6 دقیقه برای خواندن کافیست
0
0
14

آرایه مقادیر چندگانه را در یک متغیر واحد ذخیره می کند:

$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";

آرایه (array) چیست؟

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

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

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

با این حال، اگر بخواهید از طریق اتومبیل حلقه بزنید و یک خاصیت پیدا کنید؟ و اگر سه ماشین داشتید، اما 300؟

راه حل ایجاد آرایه است!

یک آرایه می تواند مقادیر زیادی را با یک نام نگه دارد، و شما می توانید با ارجاع به یک عدد شاخص به مقادیر دسترسی داشته باشید.

ساختن آرایه (array) در Php

برای ایجاد یک آرایه در پی اچ پی شما باید از فانکشن پیشفرض یعنی ٖarray() استفاده کنید .

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

آرایه های ذخیره شده – آرایه ها با یک عدد
آرایه های انجمنی – آرایه ها با کلیدهای نامگذاری شده (شناسه)
آرایه های چند بعدی – آرایه های حاوی یک یا چند آرایه

ذخیره سازی مقادیر آرایه (array) در Php

برای ذخیره سازی شما دو روش پیش رو دارید :

( متداول ترین ) شناسه یا کلید گذاری به صورت آتوماتیک :

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

شناسه گذاری دستی :

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

مثال زیر یک آرایه ذخیره شده به نام cars$ ایجاد می کند، سه عنصر را به آن اختصاص می دهد، و سپس یک متن را که حاوی مقادیر آرایه است، چاپ می کند:

<?php
$cars = array("Volvo", "BMW", "Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>

چاپ طول آرایه –  از طریق تابع count()

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

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

در مثال باید نتیجه برای شما سه عنصر باشد ! از این تابع به طور مثال در شرط ها بسیار می توانید استفاده کنید .

چاپ کردن اطلاعات یک آرایه (array) از طریق حلقه

برای حل کردن و چاپ همه مقادیر یک آرایه تعریف شده، می توانید از یک حلقه استفاده کنید، مانند این: (زمانی چاپ می کند تعداد عناصر بیشتر از صفر باشد ! و برای بردن به تعداد از تابع count که در قبل از آن صحبت شد استفاده شده است .)

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

for($x = 0; $x < $arrlength; $x++) {
    echo $cars[$x];
    echo "<br>";
}
?>

نتیجه شما باید اینگونه چاپ بشود :

Volvo
BMW
Toyota

شخصی سازی بیشتر آرایه ها (array) در PHP

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

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

$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
// و یا 
$age['Peter'] = "35";
$age['Ben'] = "37";
$age['Joe'] = "43";

و حالا نمونه از صدا زدن آرایه ها از طریق شناسه ها :

<?php
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>

صدا زدن آرایه های انجمنی (Associative Array) از طریق حلقه (Loop )

برای حل کردن و چاپ تمام مقادیر آرایه انجمنی، می توانید از یک حلقه foreach استفاده کنید، مانند این:

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

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

آرایه های چند بعدی (Multidimensional Arrays)

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

در آرایه های چند بعدی امکان دارد تنها یک آرایه یا حتی بیشتر هم باشد .

ابعاد آرایه شما نشان میدهد که آرایه شما چند بعدی است !

برای یک آرایه دو بعدی شما برای انتخاب یک عنصر به دو شاخص نیاز دارید
برای یک آرایه سه بعدی، برای انتخاب یک عنصر به سه شاخص نیاز دارید

آرایه های دو بعدی (Two-dimensional Arrays) در PHP

شاخه بندی : آرایه های دو بعدی آریه ای از آرایه ، آرایه هاست (آرایه های سه بعدی ، آرایه ای از آرایه آرایه های آرایه هاست .)
برای مثال :
NameStockSold
Volvo2218
BMW1513
Saab52
Land Rover1715

ما می توانیم آرایه ها بالا را در جدول با استفاده از آرایه های دوبعدی ذخیره کنیم .

$cars = array
  (
  array("Volvo",22,18),
  array("BMW",15,13),
  array("Saab",5,2),
  array("Land Rover",17,15)
  );

اکنون متغیر و آرایه $cars دارای چهار آرایه است . و دارای دو شاخصه است . (ردیف و ستون)

<?php
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".<br>";
echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".<br>";
echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".<br>";
echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".<br>";
?>

همچنین ما می توانیم یک for را داخل یک for دیگر قرار دهیم و آرایه ها مورد را بگیریم .

<?php
for ($row = 0; $row < 4; $row++) {
  echo "<p><b>Row number $row</b></p>";
  echo "<ul>";
  for ($col = 0; $col < 3; $col++) {
    echo "<li>".$cars[$row][$col]."</li>";
  }
  echo "</ul>";
}
?>

تعریف شناسه (کلید) اختصاصی برای آرایه ها (array)

اگر در ابتدا شما چند آرایه تعریف کنید و برای هر آرایه یک شناسه در نظر بگیرید همیشه ادامه (شماره گذاری- شناسه گذاری) آرایه ها از آخرین شناسه ای که تعریف کرده اید ادامه پیدا می کند :

$arr = array(5 => 1, 12 => 2);

$arr[] = 56;   
// در واقع این آرایه از شناسه ۱۲ ادامه پیدا می کند یعنی : $arr[13] = 56;

$arr["x"] = 42;
// در واقع ما در این متن از شناسه عدیدی استفاده نکرده ایم و به جای آن از شناسه حروفی استفاده کرده ایم یعنی : "x"

برای خالی کردن (از بین بردن) کل آرایه و یا یک المان آرایه با شناسه خاص در Php

برای این که یک المان را از یک آرایه به طور کامل حذف کنیم از متغیر unset استفاده می کنیم یعنی :

<?php
$arr = array(5 => 1, 12 => 2);

$arr[] = 56;
// در واقع این آرایه از شناسه ۱۲ ادامه پیدا می کند یعنی : $arr[13] = 56;

$arr["x"] = 42;
// در واقع ما در این متن از شناسه عدیدی استفاده نکرده ایم و به جای آن از شناسه حروفی استفاده کرده ایم یعنی : "x"

unset($arr[5]); // برای پاک کردن یک المان از آرایه 

unset($arr);    // برای پاک کردن و از بین بردن تمام آرایه


var_dump($arr);

گرفتن آرایه با شناسه (key) اختصاصی و تبدیل آن به شناسه (key) های عددی در php

گاهی پیش می آید که آرایه هایی که شما دریافت می کنید با (key) های اختصاصی برای شما ارسال می شود اگر نیاز دارید که (key) ها به صورت عددی و پیفرض باشد شما می توانید از تابع array_values استفاده کنید :

$array = array("size" => "XL", "color" => "gold");

$arr = array_values($array);
var_dump($arr);

حال خروجی ما به اینصورت خواهد بود :

array(2) { [<span style="color: #0000ff;">0</span>]=> string(2) "XL" [<span style="color: #0000ff;">1</span>]=> string(4) "gold" }

تبدیل دیگر خواص و مقادیر به آرایه (array)

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

(array)$Value ;

array($Value);

برای مثال تبدیل دو شیء ( object ) :

<?php

class A {
    private $A; // This will become '\0A\0A'
}

class B extends A {
    private $A; // This will become '\0B\0A'
    public $AA; // This will become 'AA'
}

var_dump((array) new B());
?>

نکته : اگر شما مقدار NULL را تبدیل کنید آرایه خالی را خروجی خواهید گرفت .

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

مثال ۱ :

<?php
// This:
$a = array( 'color' => 'red',
            'taste' => 'sweet',
            'shape' => 'round',
            'name'  => 'apple',
            4        // key will be 0
          );

$b = array('a', 'b', 'c');

// . . .is completely equivalent with this:
$a = array();
$a['color'] = 'red';
$a['taste'] = 'sweet';
$a['shape'] = 'round';
$a['name']  = 'apple';
$a[]        = 4;        // key will be 0

$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';

// After the above code is executed, $a will be the array
// array('color' => 'red', 'taste' => 'sweet', 'shape' => 'round', 
// 'name' => 'apple', 0 => 4), and $b will be the array 
// array(0 => 'a', 1 => 'b', 2 => 'c'), or simply array('a', 'b', 'c').
?>

مثال ۲ : استفاده از array

<?php
// Array as (property-)map
$map = array( 'version'    => 4,
              'OS'         => 'Linux',
              'lang'       => 'english',
              'short_tags' => true
            );
            
// strictly numerical keys
$array = array( 7,
                8,
                0,
                156,
                -10
              );
// this is the same as array(0 => 7, 1 => 8, ...)

$switching = array(         10, // key = 0
                    5    =>  6,
                    3    =>  7, 
                    'a'  =>  4,
                            11, // key = 6 (maximum of integer-indices was 5)
                    '8'  =>  2, // key = 8 (integer!)
                    '02' => 77, // key = '02'
                    0    => 12  // the value 10 will be overwritten by 12
                  );
                  
// empty array
$empty = array();         
?>

مثال ۳ : آرایه های مجموعه ای (چند المانی) – برای چاپ کردن یک آرایه

<?php
$colors = array('red', 'blue', 'green', 'yellow');

foreach ($colors as $color) {
    echo "Do you like $color?\n";
}

?>

و خروجی به این صورت خواهد بود :

Do you like red?
Do you like blue?
Do you like green?
Do you like yellow?

مثال ۴ : تغییر مقدار المان های آرایه در یک حلقه :

<?php
foreach ($colors as &$color) {
    $color = strtoupper($color);
}
unset($color); /* ensure that following writes to
$color will not modify the last array element */

print_r($colors);
?>

خروجی به اینصورت خواهد بود :

Array
(
    [0] => RED
    [1] => BLUE
    [2] => GREEN
    [3] => YELLOW
)

مثال ۵ : آرایه مبتنی بر یک شناسه :

<?php
$firstquarter  = array(1 => 'January', 'February', 'March');
print_r($firstquarter);
?>

خروجی به این صورت خواهد بود :

Array 
(
    [1] => 'January'
    [2] => 'February'
    [3] => 'March'
)

مثال ۶ : پر کردن یک آرایه :

پر کردن آرایه از طریق یک فایل در Php

<?php
// fill an array with all items from a directory
$handle = opendir('.');
while (false !== ($file = readdir($handle))) {
    $files[] = $file;
}
closedir($handle); 
?>

برای مرتب کردن آرایه ها بعد از گرفتن آرایه ها از فایل :

<?php
sort($files);
print_r($files);
?>
مشاهده محتوا بیشتر
ادامه مطلب شمشاد امیری خراسانی
بارگذاری بیشتر در آموزش زبان برنامه نویسی PHP

دیدگاه بگذارید

avatar
  اشتراک  
به من اطلاع بده

همچنین ببینید

افزایش سرعت چهار تا ده برابری سایت وردپرسی شما (حذف علامت سوال از فایل) + ویدئو آموزشی

آيا راه های معمول برای افزایش سرعت سایت وردپرسی مناسب است ؟‌ (WordPress Caching Plugins) م…