دوشنبه 03 مهر 1396

فصل پنجم : آشنائی با زبان برنامه نویسی PHP : توابع بخش دوم : آموزش PHP

1-2-توابعی سیستمی که کاربراز آنها استفاده می کند

1-2-1-توابع کار با آرایه
پس از آشنایی با آرایه به دلیل استفاده فراوانی که در برنامه نویسی دارند بهتر است با توابعی که با آنها سروکار دارند آشنا شوید.در این قسمت تعداد محدودی از این توابع که کاربرد زیادی برخوردارند معرفی می شوند و شما می توانید توضیح کامل توابع مربوط به آرایه را به آدرس وبی زیر جهت مطالعه دقیق مراجعه نمایید :
http://php.net/manual/en/ref.array.php

 

 

 

1-2-1-1- تابع array_change_key_case

توضیح

array array_change_key_case ( array $input [, int $case= CASE_LOWER ] )

این تابع جهت تغییر کلیدهای شمارنده آرایه بکار می رود.یعنی شما می توانید در زبان انگلیسی اگر نوع کلید شمارتده آرایه از ساختار متنی باشد آنرا تغییر دهید.به مثال زیر دقت نمایید.
<?php
$input_array = array("Name" => "Alireza", "Family" => "Balvardi","Birth Date"=>1977,"علاقه"=>"PHP");
echo "<pre>";
print_r($input_array);
echo "</pre>";
echo "<pre>";
print_r(array_change_key_case($input_array, CASE_UPPER));
echo "</pre>";
?>

نتیجه اجرای این کد در قسمت زیر آورده شده است و شما می بینید که این تغییرات بر روی حروف فارسی بی تاثیر می باشد.


	 Array
  (
      [Name] => Alireza
      [Family] => Balvardi
      [Birth Date] => 1977
      [علاقه] => PHP
  )
  Array
  (
    [NAME] => Alireza
    [FAMILY] => Balvardi
    [BIRTH DATE] => 1977
    [علاقه] => PHP
  )
	 
 

1-2-1-2- تابع array_combine

توضیح : ترکیب دو آرایه که اعضای آرایه اول به عنوان کلید آرایه نهایی و اعضای آرایه دوم به عنوان مقادیر آرایه نهایی در نظر گرفته می شود.دقت نمایید که تعداد اعضای آرایه های اول و دوم بایستی برابر باشد.

array array_combine ( array $keys , array $values )

آرایه اول رنگ میوه ها و آرایه دوم نام میوه ها و نتیجه در آرایه سوم انتساب رنگ میوه به نام میوه می باشد.

<?php
$a = array('سبز', 'قرمز', 'زرد’);
$b = array('انگور', 'سیب', 'موز’);
$c = array_combine($a, $b);
echo "<pre>";
print_r($c);
echo "</pre>";
?>

نتیجه اجرای کد بالا

Array (     [سبز] => انگور     [قرمز] => سیب     [زرد] => موز )

1-2-1-3- تابع array_count_values

array array_count_values ( array $input )

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

<?php
$array = array(1, "ایران", 1, "آسیا", "ایران",2,3,5,2, "ایران");
echo "<pre>";
print_r(array_count_values($array));
echo "</pre>";
?>

نتیجه اجرای کد بالا


  Array
(
    [1] => 2
    [ایران] => 3
    [آسیا] => 1
    [2] => 2
    [3] => 1
    [5] => 1
)

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


1-2-1-4- تابع array_diff

array array_diff ( array $array1 , array $array2 [, array $ ... ] )

این تابع جهت مقایسه مقادیر یک آرایه با آرایه های دیگر می پردازد.یعنی تعداد اعضائی که در آرایه اول وجود دارد را با بقیه آرایه ها می‌سنجد.با توجه به مثال زیر به این نکته دقت نمایید که کلیدهای یک آرایه در این تابع هیچ نقشی ندارند.

مثال :


<?php
$array1 = array("a" => "green", "red", "blue", "white","black");
$array2 = array("green", "b" => "yellow", "red");
$array3 = array("black", "cyan");
$result = array_diff($array1, $array2, $array3);
echo "<pre>";
print_r($result);
echo "</pre>";
?>

نتیجه :


  Array
(
    [1] => blue
    [2] => white
)

توضیح مثال : فقط دو رنگ آبی و سفید که در آرایه اول بود در آرایه های بعدی وجود ندارد.

1-2-1-5- تابع array_key_exists

bool array_key_exists ( mixed $key , array $search )

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

<?php
$array1 = array('A' => 1, 'B' => 2 , 'D'=>4);
if(array_key_exists('C', $array1))
echo "<div dir=\"rtl\">کلید C در آرایه وجود دارد</div>";
else
echo "<div dir=\"rtl\">کلید C در آرایه وجود ندارد</div>";
if(array_key_exists('D', $array1))
echo "<div dir=\"rtl\">کلید D در آرایه وجود دارد</div>";
else
echo "<div dir=\"rtl\">کلید D در آرایه وجود ندارد</div>";
?>

نتیجه این کد در زیر آمده است.
کلید C در آرایه وجود ندارد
کلید D در آرایه وجود دارد


 

1-2-1-6- تابع array_merge

array array_merge(array1,array2[,…])

همانگونه که مشاهده می کنید در این ساختار برای ادغام حداقل دو آرایه از این تابع استفاده می کنیم.در این تابع آرایه ها با هر نوع ساختاری که باشند با هم ادغام می شوندو نتیجه یک آرایه می شود که کلیه خصوصیات آرایه های ادغامی را با خود حفظ می کند. به مثالی که در زیر آمده است دقت نمایید .

<?php
$A = array('a','b','c','d');
$B = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5,'f'=>6,'e'=>7);
$C = array_merge($A,$B);
echo "<pre>";
print_r($C);
echo "</pre>";
?>
نتیجه اجرای کد بالا :

   Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [a] => 1
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 7
    [f] => 6
)

در این تابع هر نوع نتیجه ای که آرایه باشد را می توانید ترکیب نمایید.


1-2-1-7- تابع array_reverse

array  array_reverse(array1)

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

<?php
$A = array('a','b','c','d');
echo "<pre>";
print_r($A);
echo "</pre>";
$B = array_reverse($A);
echo "<pre>";
print_r($B);
echo "</pre>";
?>
به اندیسهای اول آرایه قبل از وارونه شدن دقت نمایید.آرایه دوم وارونه آرایه اول می باشد.

   Array
(
    [0] => a
   [1] => b
    [2] => c
    [3] => d
)
Array
(
    [0] => d
    [1] => c
    [2] => b
    [3] => a
)

1-2-1-8- تابع array_search

Mixed array_search(mixed needle,array haystack[,bool strict])

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

<?php
$A = array('a','b','c','d','e','f');
$B = array_search('e',$A);
$C = array_search('g',$A);
echo "<pre>B=";
print_r($B);
echo "</pre>";
echo "<pre>C=";
print_r($C);
echo "</pre>";
?>
نتیجه جستجوی دوم تهی می باشد.

  B=4
C=

1-2-1-9- تابع assort

Bool assort(array array_arg[,int sort_fhag])

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

<?php
$A = array('y','b','a','m','d','u','x','f');
echo "<pre>";
print_r($A);
echo "</pre>";
asort($A);
echo "<pre>";
print_r($A);
echo "</pre>";
?>
به اندیسهای آرایه قبل و بعد از مرتب سازی توجه کنید. در متن به قسمتی که متمایز گردیده است دقت نمایید.
Array
(
[0] => y
[1] => b
[2] => a
[3] => m
[4] => d
[5] => u
[6] => x
[7] => f
)
Array
(
[2] => a
[1] => b
[4] => d
[7] => f
[3] => m
[5] => u
[6] => x
[0] => y
)

1-2-1-10- تابع count

Int count(mixed var [,int mode])

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

<?php
$A = array('y','b','a','m','d','u','x','f');
echo count($A)."<br />";
$B = "Alireza Balvardi";
echo count($B)."<br />";
$C = $_SERVER;
echo count($C)."<br />";
?>

مورد عدد 8 در رابطه با تعداد خانه های آرایه اول و عدد 1 مربوط به رشته متنی و عدد 33 مربوط به شیء سرور می باشد.

8
1
33

1-2-1-11- تابع list (list function)

void list(mixed var [,…])

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

<?
function a()
{
$a = 'Alireza';
$b = 'Balvardi';
return array($a,$b);
}
list($k,$h) = a();
echo "$k, $h";
?>

نتیجه : Alireza, Balvardi

توضیحات :
در تابع بکار رفته در مثال فوق در متغیرها مقادیر مورد نظر ریخته شده و سپس مقدار تابع بصورت آرایه ارجاع داده شده است.
چون مقدار آرایه یک سطر دارد مقدار برگشتی متناظر با متغیرهای $k, $h در دستور لیست list می باشد .
 

 1-2-1-12- تابع isset (isset function)

bool isset ( mixed $var [, mixed $... ] )

این تابع برای کنترل وجود یک مقداردر آرایه ، کلاس یا هر چیز دیگری کاربرد دارد.
نوع داده برگشتی صحیح یا غلط می باشد (true , false).

<?
$a = array("A"=>"Alireza","B"=>"Balvardi","P"=>"PHP");
echo isset($a["D"])? $a["D"]:0;
echo isset($a["A"])? $a["A"]:0;
?>

نتیجه :
حالت اول : 0
Alireza حالت دوم :

توضیحات :
در مثال یک آرایه بنام a$ با کلیدهای خاص و مقادیر مشخص برای هر کلید تعریف شده است.با تابع کنترلی isset در هر حالت وجود کلید مورد نظر در آرای موجود بررسی می شود که در صورت وجود مقدار آرایه آن کلید چاپ می شود و در غیر اینصورت عدد صفر چاپ می شود.

عمومی

علیرضا بلوردی (برنامه نویس PHP)
سیرجان, کرمان
علیرضا بلوردی
ولی عصر, سیرجان, کرمان 7817645939
+989131789658
نمونه کارها و کامپوننتهای نوشته شده توسط علیرضا بلوردی برنامه نویس جوملا و PHP