pedia-learning

ورود

گذرواژه‌تان را فراموش کرده‌اید؟

ثبت نام

ثبت نام
انجمن عمومی گسترش فناوری آگو

اگر اولین بار از انجمن بازدید می کنید برای دسترسی کامل به انجمن عضو شوید بعد عضویت قادر به ارسال مطلب و شرکت در بحث خواهید داشت

ارسال پاسخ 
 
امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
توابع مربوط به آرایه ها در PHP بخش اول
05-10-2014, 05:10 PM
ارسال: #1
توابع مربوط به آرایه ها در PHP بخش اول
مرجع کام[/php]ل آرایه ها در PHP
یکی از قدرتمند ترین قسمتهای پی اچ پی آرایه ها هستند.در این مقاله به بررسی آرایه و توابع کار با آرایه در پی اچ پی میپردازیم. داشتن بک مرجع کامل در مورد آرایه ها به زبان فارسی یکی از نیازهای اولیه برنامه نویسان پی اچ پی هست.که البته به مرور و با کار کردن با هر کدوم از توابع مربوط به آرایه ها دیگه نیاز چندانی به این مرجع پیدا نخواهید کرد اما برای زمانی که نیاز به تابع خاصی داشته باشید یا با توابع مربوط به آرایه ها آشنا باشید ابن مقاله میتونه نیاز شما رو برطرف کنه.

برای نگهداری مقادیر زیاد به صورت مرتب که از انعطاف خوبی هم برخوردار باشه از آرایه ها استفاده می کنیم.آرایه ها در پی اچ پی میتونن به صورت های : آرایه ، لیست (List) ، دیکشنری (Dictionary) ،استک (Stack)، صف (Queue) و … استفاده بشن.
هر مقدار در آرایه ها میتونن شامل آرایه دیگه هم باشه.

برای ایجاد آرایه در پی اچ پی از کلمه کلیدی array استفاده میشه.
مثال :

کد php:
$ar = array( 'k1'=>'v1','k2'=>'v2'); 

همینطور که در مثال میبینید هر آرایه شامل یک کلید یا key و مقدار یا value است که کلید آرایه فقط باید از نوع string یا integer باشه اما مقدار میتونه شامل هر نوع داده ای باشه.

کد php:
$arr = array("somearray" => array(=> 513 => 9"a" => 42));

echo 
$arr["somearray"][6];    // 5
echo $arr["somearray"][13];   // 9
echo $arr["somearray"]["a"];  // 42 

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

کد php:
// This array is the same as ...
array('a' 'b' 'c');

// ...this array
array(0=>'a' 1=>'b' 2=>'c'); 


دو آرایه بالا دقیقن مثل هم عمل میکنن.

برای اضافه کردن مقادیر جدید به آرایه ها به صورت زیر عمل میکنیم :

کد php:
//$ar[key] = value
$ar = array('a' 'b' 'c');
$ar[] = 'd';
$ar[] = 'e';
$ar['name'] = 'Saeed'

در مثال بالا میبینید که برای اضافه کردن مقدار جدید از براکت ([]) استفاده میکنیم. اگر داخل براکت مقداری قرار بدیم به عنوان کلید در نظر گرفته میشه. اگر از براکت خالی استفاده بشه یک عدد به صورت خودکار به مقدار داده میشه .
تبدیل مقادیر مختلف به آرایه ها

برای تبدیل مقادیر مختلف به آرایه به صورت زیر عمل میکنیم :
$arr = (array) 1.2323
که یک آرایه به صورت زیر به ما میده :
array( [0] => 1.234444 )
برای تبدیل کلاسها هم به آرایه میتونیم از روش بالا استفاده کنیم.هنگامی که یک کلاس رو به یک آرایه تبدیل میکنیم متغیرهای کلاس اعضای آرایه ما رو تشکیل میدن :

کد php:
class My
{
public 
$a 'a';
public 
$b 'b';
}
$obj = new My();
$ar = (array)$obj;
// Array ( [a] => a [b] => b ) 

دستیابی به مقادیر آرایه ها

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

کد php:
foreach ($arr as $a)
echo 
$a

در هر بار اجرای حلقه به ترتیب از اولین عضو آرایه در متغیر $a قرار میگیره .سپس میتونیم از این مقدار استفاده کنیم.
برای دسترسی همزمان به کلید و مقدار آرایه از حلقه foreach به صورت زیر استفاده میکنیم :

کد php:
foreach ($arr as $key => $value)
echo 
$key .' '.$value

در حلقه بالا در هر بار اجرای حلقه کلید آرایه در متغیر$key و مقدار در متغیر $value قرار میگیره.

برای نمایش تمام اعضای یک آرایه بدون استفاده از حلقه foreach میتونیم از دستور print_r استفاده کنیم :

کد php:
print_r($arr); 

توابع کار با آرایه ها در PHP

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

array_change_key_case(array,case)

این تابع تمام کلید های داخل آرایه رو به حروف بزرگ یا کوچک تبدیل میکنه.
پارامتر اول این تابع یک ارایه میگیره و پارامتر دوم CASE_LOWER برای تبدیل به حروف کوچک و CASE_UPPER برای تبدیل کلیدها به حروف کوچک استفاده میشن.
مثال :

کد php:
$input_array = array("FirSt" => 1"SecOnd" => 4);
print_r(array_change_key_case($input_arrayCASE_UPPER)); 

خروجی

Array
(
[FIRST] => 1
[SECOND] => 4
)

مثال ۲ :

کد php:
$arr = array('first'=>'Apple','Second'=>'orange');
print_r(array_change_key_case($arrCASE_UPPER));); 

خروجی

Array
(
[FIRST] => Apple
[SECOND] => orange
)

در مثال دوم مشاهده میکنید که فقط کلیدهای آرایه به حروف بزرگ تبدیل شدند.
array array_combine ( array , array )

این تابع دو آرایه رو به یک آرایه تبدیل مبکنه.به این صورت که آرایه ای که در پارامتر اول بهش میدیم به عنوان کلید و آرایه پارامتر دوم به عنوان مقادیر آرایه جدید در نظر گرفته میشن.
مثال :
کد php:
$a = array('green''red''yellow');
$b = array('avocado''apple''banana');
$c array_combine($a$b);

print_r($c); 

خروجی :

Array
(
[green] => avocado
[red] => apple
[yellow] => banana
)

میبینید که تمام مقادیر آرایه اول به عنوان کلید و تمام مقادیر آرایه دوم به عنوان مقدار آرایه جدید در نظر گرفته شدن. در صورتی که تعداد عناصر آرایه اول با آرایه دوم برابر نباشه FALSE برگشت داده میشه.
array array_count_values ( array )

تعداد تکرار کلیدهای یک آرایه رو به صورت یک آرایه انجمنی برمیگردونه.
مثال :

کد php:
$array = array(1"hello"1"world""hello");
print_r(array_count_values($array)); 

خروجی

Array
(
[1] => 2
[hello] => 2
[world] => 1
)

در آرایه $array عدد ۱ دوبار تکرار شده ، hello هم دوبار تکرار شده و world یک بار تکرار شده.خروجی این تابع هم به همین صورت تعداد مقادیر تکرار شده در آرایه رو برمیگردونه.
array_diff(array1,array2,array3,…)

با استفاده از این تابع میتونید یک ارایه رو با چند آرایه دیگه مقایسه کنید.در این تابع مقادیر(values) آرایه اول با مقادیر آرایه های بعدی مقابسه میشه و value هایی که در آرایه اول باشه اما در آرایه های بعدی نباشه برگشت داده میشه.

کد php:
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(3=>"Horse",4=>"Dog",5=>"Fish");
print_r(array_diff($a1,$a2)); 

خروجی

Array ( [0] => Cat )

array_diff_assoc($array1,$array2,$array3,…)

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

کد php:
$a1=array(0=>"Cat",1=>"Dog",2=>"Horse");
$a2=array(0=>"Rat",1=>"Horse",2=>"Dog");
$a3=array(0=>"Horse",1=>"Dog",2=>"Cat");
print_r(array_diff_assoc($a1,$a2,$a3)); 

Array ( [0] => Cat [2] => Horse )
نقل قول این ارسال در یک پاسخ
ارسال پاسخ 


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان


Persian Translation by MyBBIran.com - Ver: 4.1
Powered by MyBB, © 2002-2024 MyBB Group.
Theme designed by Marvel (Sidebar created by Yaldaram - Yaldaram.com)
Theme Translation by Mt Edition