کار با آرایه ها

آرایه نوعی متغیر است که لیستی از آدرسهای مجموعه ای از داده های هم نوع را در خود ذخیره می کند. PHP دارای توابع زیادی برای دستکاری آرایه ها می باشد که در ادامه به توضیح آنها می پردازیم.

 

نمایش عناصر آرایه

برای نمایش عناصر آرایه از تابع ()print_r استفاده می شود. به مثال زیر توجه کنید :

 <?php
    $seasons = array( "Autumn", "Winter", "Spring", "Summer" );
    
    print_r($seasons);
?>
Array ( [0] => Autumn [1] => Winter [2] => Spring [3] => Summer )

برای نمایش بهتر خروجی می توانید تابع فوق را در بین تگ <pre> به صورت زیر قرار دهید :

 <?php
    $seasons = array( "Autumn", "Winter", "Spring", "Summer" );
    
    echo '<pre>';
        print_r($seasons);
    echo '</pre>';
?>
Array
(
   [0] => Autumn
   [1] => Winter
   [2] => Spring
   [3] => Summer
)

 

شمارش عناصر آرایه

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

 <?php
    $seasons = array( "Autumn", "Winter", "Spring", "Summer" );
    
    echo count($seasons);
?>
4

 

جدا کردن قسمتی از آرایه

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

 <?php
    $seasons = array( "Autumn", "Winter", "Spring", "Summer" );
    
    print_r(array_slice($seasons,2,2));
?>
Array ( [0] => Spring [1] => Summer )

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

 

تست وجود یک عنصر در داخل آرایه

برای تشخیص اینکه آیا یک عنصر در داخل یک آرایه هست یا نه می توان از تابع ()in_array استفاده کرد. این تابع اگر عنصر مورد نظر وجود داشته باشد مقدار 1 یا true و در غیر اینصورت مقدار 0 یا false را بر می گرداند :

<?php
	$seasons = array( "Autumn", "Winter", "Spring", "Summer" );
	
	echo in_array("Autumn", $seasons);
?>
1

 

به دست آوردن آخرین عنصر آرایه

برای به دست آوردن آخرین عنصر آرایه از تابع ()end استفاده می شود :

<?php
	$seasons = array( "Autumn", "Winter", "Spring", "Summer" );
	
	echo end($seasons);
?>
Summer

 

تبدیل آرایه به رشته و بالعکس

PHP دارای دو تابع برای تبدیل کردن آرایه به رشته و بالعکس می باشد. برای تبدیل یک رشته به آرایه از تابع ()explode استفاده می شود. این تابع دو آرگومان می گیرد. اولین آرگومان کاراکتری است که بر اساس آن می خواهیم رشته را تکه تکه کرده و در داخل آرایه بریزیم. دومین آرگومان هم خود رشته است. به مثال زیر توجه کنید :

 <?php
    $string =  "Autumn, Winter, Spring, Summer";
    
    $season =  explode(",",$string);
    
    print_r($season);
?>
Array ( [0] => Autumn [1] => Winter [2] => Spring [3] => Summer )

در کد بالا یک رشته داریم که نام فصل ها در آن به وسیله کاما از هم جدا شده اند. در داخل تابع ()explode، آرگومان اول را علامت کاما قرار داده ایم یعنی اینکه ما می خواهیم رشته مورد نظر را بر اساس علامت های کامای آن تکه تکه کنیم و در داخل آرایه بریزم. همانطور که در خروجی مشاهده می کنید کلمات داخل رشته به عناصر آرایه تبدیل شده اند.
تابع دیگری که برعکس تابع ()explode عمل می کند تابع ()implode است. این تابع نیز دو آرگومان قبول می کند.اولین آرگومان کاراکتری است که می خواهیم بین کلمات رشته قرار بگیرد و دومین آرگومان هم نام آرایه است :

 <?php
    $season = array ("Autumn", "Winter", "Spring", "Summer");
	
    $string =  implode(",", $season);
	
    echo $string ;
?>
Autumn,Winter,Spring,Summer

 

()seialize و ()unserialize

گاهی اوقات لازم است که یک آرایه را در فایل یا پایگاه داده ذخیره نمایید. برای این کار کافیست که از متد ()serialize برای تبدیل آرایه به رشته استفاده کنید. به مثال زیر توجه کنید :

<?php    
    $myArray = array(12,"jack");

    echo(serialize($myArray));
?>

خروجی کد بالا به صورت رشته قالب بندی شده زیر است :

a:2:{i:0;i:12; i:1;s:4:"jack";}

برای درک بهتر خروجی بالا قسمتهای مختلف آن را رنگی کرده ام. a:2 به معنای این است که آرایه دو عنصر دارد. i:0;i:12; هم یعنی عنصر با اندیس صفر برابر یک عدد صحیح با مقدار 12 و i:1;s:4:”jack”; هم یعنی عنصر دوم (i:1) یک رشته چهار حرفی (s:4) با مقدار jack می باشد.
برای تبدیل یک رشته قالب بندی مثل رشته فوق به آرایه اصلی هم می توان از متد ()unserialize استفاده کرد :

<?php    
    $string = 'a:2:{i:0;i:12;i:1;s:4:"jack";}';

    print_r(unserialize($string));
?>

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