PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : آرایه ها در php



Rezash
August 1st, 2010, 09:49
سلام،
خسته نباشيد
آرايه نوع دادهاي خاص است که مي توان آن را به يک ظرف از مقادير تشبيه کرد.
آرايه مي توند مجموعه اي از اعداد،رشته ها،مولفه ها،اشاره گرها و حتي آرايه ديگري باشد.برخلاف برخي ديگر از زبان هاي برنامه نويسي مقادير آرايه ها مي توند به صورت مختلط باشد.به طور مثال يک آرايه مي تواند به طور همزمان اعداد،رشته و مولفه ها را ذخيره کنيد.
به هر يک از عضو هاي يک آرايه يک عنصر از آن آرايه مي گويند.
آرايه چند بعدي:
هنگامي که عنصر يک آرايه خود يک آرايه باشد به آن آرايه آرايه چند بعدي مي گويند.
کليدها:
کليدها را مي تون به نام متغيير ها تشبيه کرد که از طريق آنها مي توان مقادير مربوطه دسترسي پيدا کرد.
اگه نوع کليد رشته باشد به آن آرايه آرايه انجمني مي گويند.
تغغير پذيري:
برخلاف زبان هايي مانند جاوا و ++C در زبان PHP نيازي به مشخص کردن تعداد عناصر آرايه نمي باشد و آرايه ها مي توانند بر اساس نياز بزرگ يا کوچک شوند.به اين خاصيت تغيير پذيري آرايه مي گويند.

يکي ديگر از ويژگي هاي آرايه هاي PHP عدم نياز به تعريف نوع داده مي باشد.در واقع اين خاصيت موجب افزايش انعطاف پذيري آرايه ها شده است.
براي ايجاد آرايه از تابع array استفاده مي شود.
براي اين منظور به صورت زير عمل مي کنيم:

$rsh = array('islamic','republic','of','Iran');ت
وضيحات:
rsh متغيري اختياري است.
islamic و republic و of و Iran چهار عنصر دلخواه هستند که مي توان تعداد آنها را تغيير داد.
کليدهاي آرايه چون تعريف نشده اند به طور پيشفرض عدد مي باشند.
--
براي دستيابي به مقادير آرايه به صورت زير عمل مي کنيم:

$rsh[0];
براي واضح بودن مثال:

echo $rsh[0];
که خروجي اين مثال با توجه به عناصر موجود islamic خواهد بود.
براي افزودن يک عنصر جديد به صورت زير عمل مي کنيم:

$rsh[4]= 'Dot';
كه Dot مقدار دلخواه ما مي باشد.
براي نمايش تمامي مقادير يک آرايه از print_r استفاده مي کنيم:

print_r($rsh);
ايجاد آرايه هاي انجمني:
همانطور که توضيح داده شد آرايه هاي انجمني داراي کليدهايي از نوع رشته هستند.در واقع مزيت آرايه هاي انجمني ايجاد يک ارتباط معنايي بين کليد و عناصر مي باشد.
مثلا:

$rsh= array('name'=>'reza','gener'=>'male');
echo $rsh['name'];
echo $rsh['gener'];
براي شمارش تعداد عاصر يک آرايه از count استفاده مي کنيم.

echo count($rsh);
براي دستايابي به تمام عناصر آرايه ها مي توان از حلقه هاي تکرار استفاده کرد:

<?php
$rsh = array('islamic','republic','of','Iran');
$counts = count($rsh);
for($i=0;$i<$counts;$i++){
echo "$rsh[$i] ";
}
?>
و اگر آرايه ما از نوع آرايه هاي انجمني باشه بايد از foreach استفاده کنيم:

<?php
$rsh= array('name'=>'reza','gener'=>'Male','Mina'=>'Female','Mohammad'=>'Male');
foreach ($rsh as $Key => $value)
{
echo "The value of $Key is : $value";
}
?>
آرايه هاي چند بعدي:
همونطور که گفتم اگه اگر عناصر يک آرايه خود آرايه باشند به آن آرايه، آرايه چند بعدي مي گويند.
مثال:

<?php
$rsh= array();
$rsh[0] = array('CMS'=>'reza','PHP'=>'SH');
$rsh[1] = array('URL'=>'http://webhostingtalk.ir','Title'=>'.: | webhostingtalk|:.');
$url = $rsh[1]['URL'];
$title = $rsh[1]['Title'];
echo 'Find nice articles on <a href='.$url.'>'.$title.'</a>';
?>
که فکر نکنم نياز به توضيح نداشته باشه.
تغيير مولفه هاي جاري:
با استفاده از توابع current,next,prev,reset,end مي توان در آرايه حر کت کرد.
reset : اين تابع اشاره گر را به اولين عنصر آرايه مي برد و مقداري را برنمي گرداند.
next : اين تابع اشاره گر را به عنصر بعدي مي برد و در صورت وجود مقدار آن را برمي گرداند در غير اين صورت false بر گردانده مي شود.
prev : اين تابع هم که عکس next عمل مي کند.
current : اين تابع عنصر جاري را بر مي گرداند.
end : اين تابع به آخرين عنصر موجود اشاره مي کند.
مثال:

<?php
// Even nums up to 20
$even_num = array('2','4','6','8','10','12','14','16','18','20 ');
reset($even_num);
//echo prev($even_num).'<br>';
echo next($even_num).'<br>';
echo next($even_num) .'<br>';
echo prev($even_num) .'<br>';
reset($even_num);
echo end($even_num);
?>
آرايه ها مبحث طولاني و البته پر كاربرد و شيريني هستند!حتي يك تابع كاربردي در آرايه ها كه من چند ماه پيش بهش برخوردم باعث شد برنامه هاي من در هر صفحه 10-20 خط كمتر شوند!! من سعي مي كنم در صورت علاقه مندي تاپيك رو ادامه بدم چون واقعا آرايه گسترده هستند و توابع زيادي براي كار باهاشون هست.
پ.ن : اين مطلب رو قبلا در انجمن ديگري ارسال كرده بودم.و الان براي آماده سازي كاربراني كه علاقه مندي به يادگيري php دارند و در راستاي تاپيك آموزش ساخت سيستم وبلاگ دهي دارم مقدمه چيني مي كنم!
موفق باشيد

Rezash
August 6th, 2010, 21:20
در ادامه ميخوام با يك تابع فوق العاده ارزشمند در آرايه شروع كنم.
اين تابع در كد نويسي يكي از شيووه هاي متداول من شده و خيلي برام كارايي داشته.
فرض كنيد در فرم ورودي تون 10 الي 20 فيلد داشته باشيد و همه مقادير ارسال با توجه به اينكه با از نظر وجود كاراكتر هاي مخرب (يا ناسازگار يا هر اسمي!) بررسي بشند تا جلوي برخي روش هاي متداول نفوذ مانند sql_injection و ... گرفته بشه.
كد زير رو ببنيد:


$name = safe($_POST['name']);
$family= safe($_POST['family']);
$test= safe($_POST['test']);
$php= safe($_POST['php']);
$net= safe($_POST['net']);
$wht= safe($_POST['wht']);
$user= safe($_POST['user']);
$pass= safe($_POST['pass']);

در اينجا تابع safe يك تابع user defined هست يعني خودم براي خودم تعريف كردم . مثلا ميتونه به اين صورت باشه:


function safe($value,$type='0'){
$value = mysql_real_escape_string( $value );
$value = stripslashes( trim($value) );
$value = htmlspecialchars($value);
return $value;
}

ديديد كه براي تك تك متغير ها مجبور شدم،يك تابع رو به كار ببندم و كلي دردسر ، و تازه چون نميخواستم توضيح طولاني بشه يك تابع هم (safe) به كار بردم وگرنه بايد براي هر كدوم از متغير ها 3 الي 4 خط كد مي نوشتم.
همونطور كه مي دونيم متدهاي POST و GET آرايه هستند.بنابراين ما با توابع مفيد آرايه هاي مي تونيم روشون جولان بديم!
بريم سر وقت اصل مطلب:
تابع array_walk
اين تابه 2 ورودي داره.اولي نام آرايه و دومي نام تابع.
ساختار :

bool array_walk ( array &$array , callback $funcname [, mixed $userdata ] )
نقل قول از manula php.net


Applies the user-defined function funcname to each element of the array array.

array_walk() is not affected by the internal array pointer of array. array_walk() will walk through the entire array regardless of pointer position.

در واقع اين تابع همونطور كه از اسمش پيداست روي ْآرايه ما قدم ميزنه ! و كليد و مقدار هر عنصر آرايه رو از يك تابع شخصي ميگذرونه و نتيجه رو جايگزينش مي كنه.
و اما استفاده اي كه من از اين تابع كردم:


function safemini(&$value,$key){
$value = safe($value);
return $value;
}
array_walk($_POST,'safemini');

تابع safemini كه در برنامه خودم بود رو كمي ساده تر كردم،در واقع اين باز نوعي خلاقيت در كد نويسي محسوب ميشه كه چرا تابع جديدي ايجاد شده...مثلا گاهي لازم هست در بعضي فرم هامون مقادير html هم بپذيريم از كاربر پس ، تو اين تابع جديد ميشه يك شرط بذاريم اگه مقدار key فلان بود يا فلان چيزو توش داشت ديگه كاريش نداشته باش يا يك طور ديگه باهاش رفتار بشه و ...
استفاده ديگه اي كه از اين تابع داشتم در صفحات ajax بود!اگر با ajax كار كرده باشيد حتما ميدونيد موقع ارسال مقادير اگه فرم شامل برخي كاراكتر هاي خاص باشه js خطا ميده ! چون ساختارش بهم ميريزه و حقم داره ! پس توي js ما مقادير رو خنصي مي كنيم و مثلا + رو با يك مجمموعه كاراكتر دلخواه جايگزين مي كنيم.و بعد مي فرستيم . مثلا من + رو با **rsh** جايگزين مي كنم و بعد سمت php مجددا **rsh** رو با + عوض مي كنم.اين كار هم بايد براي تك تك مقادير ارسالي در صفحات ajax رعايت بشه پس با هيمن روش خيلي از حجم كد كاسته ميشه...
ادامه دارد!

---------- Post added at 09:20 PM ---------- Previous post was at 09:01 PM ----------

extract
php 4 , 5

int extract ( array $var_array [, int $extract_type = EXTR_OVERWRITE [, string $prefix ]] )
نقل قول از manual

Import variables from an array into the current symbol table.

Checks each key to see whether it has a valid variable name. It also checks for collisions with existing variables in the symbol table.
اين تابع يك آرايه رو ميشكنه و هر كليد رو به يك متغير تبديل مي كنه كه حاوي مقداري معادلش هست.
خب ميشه تو پست قبلي كه گفتم روي ْآرايه POST و GET اين تابع رو به كار بگيريم و باز كدمون رو خلاصه تر كنيم!
البته همونطور كه ميدونيد يك سري محدوديت هايي در نام گذاري متغير ها هست (قوانين نام گذاري) كه بايد رعايت بشه،و اين تابع خودش چك مي كنه كه آيا كليد اين شرايط رو داره يا نه . از خصوصيت ويژه اين تابع همين هست و ورودي هاي 2 و 3 اختياري هستند كه در صورتي كه كليدي كه قرار هست متغير باشه اگر هم نام متغير باشه يا شرايط انتخاب به عنوان يك متغير رو نداشته باشه چطور باهاش رفتار بشه!
مثلا متغير قبلي پاك بشه و جديده جايگزين بشه،قبليه مقدم باشه،متغير جديد با يك پيشوند ساخته بشه يا ... كه اگه كسي در اين مورد علاقه به اطلاعات بيشتر داشت manual اطلاعات و مثال هاي جامعي داره:
PHP: extract - Manual (http://php.net/manual/en/function.extract.php)
سپاس

Rezash
August 10th, 2010, 00:12
خلاصه وار و با مثال ادامه ميدم :)
تابع unset :
حذف يك element يا كل آرايه:
مثال


<?php
$test = array('site'=>'wht','lang'=>'php','music'=>'light');
//حذف فقط يك المان
unset($test['music']);
//حذف كل آرايه
unset($test);
?>

تابع array_keys:
اين تابع يك آرايه رو ميگيره و يك آرايه جديد رو كه شامل اسم كليدهاي آرايه داده شده هست رو بر مي گردونه.
به مثال توجه كنيد:


<?php
$test = array('site'=>'wht','lang'=>'php','music'=>'light');
print_r(array_keys($test));
?>
//خروجي
Array
(
[0] => site
[1] => lang
[1] => music
)

تابع array_keys:
شمابه تابع array_keys هست با اين تفاوت كه مقادير رو بر مي گردونه نه كليدها.


<?php
$test = array('site'=>'wht','lang'=>'php','music'=>'light');
print_r(array_values($test));
?>
//خروجي
Array
(
[0] => wht
[1] => php
[1] => light
)

بقيه توابع از جملع توابع sort و حذف و جستجو و برش رو با مثال هاي كاربردي مانند صفحه بندي اطلاعات فردا ميذارم(الان خوابم مياد!:) )

Rezash
August 10th, 2010, 18:23
تابع array_unique:
اين تابع آرايه ورودي رو بررسي و مقادير يك سان رو حذف مي كنه!
مثال


<?php
$arr = array('reza','blog','wht','php','rightclick','php' ,'blog');
$arr = array_unique($data);
print_r($arr);
?>
خروجي
Array ( [0] => reza [1] => blog [2] => wht [3] => php [4] => rightclick )

اطلاعات بيشتر در مورد پارامترهاي اختياري و مثال هاي متنوع تر
PHP: array_unique - Manual (http://php.net/manual/en/function.array-unique.php)
تابع array_slice:
اين تابع يك آرايه رو مي گيره و در جواب آرايه اي جديد رو بر مي گردونه با اين تفاوت كه آرايه جديد قسمت دلخواهي از آرايه ما هست
اين تابع از همون توابع مورد علاقه خودم هست و جاي صحبت زياد داره و هر وقت فرصت كنم مثال هاي جالب و كاربردي رو ازش مي زنم
فعلا فقط در حد آشنايي اوليه توابع رو مي گم تا بشه تو پست هاي آتي ازشون رسما استفاده كرد!


<?php
$arr = array("wht", "webhostingtalk", "php", "learn", "nice", "Its perfect!");
$arr = array_slice($arr, 2, 3);
print_r($arr);
?>

Array ( [0] => php [1] => learn [2] => nice )

توضيحات تكميلي :
ورودي اول : نام آرايه
دوم : نقطه شروع برش،اگر مثبت باشه از اول شروع ميشه و اگر منفي باشه از آخر.دقت كنيد كه در مثال بالا من از 2 شروع كردم
يعني از عنصر سوم(با احتساب0) يعني همون php و گفتم به اندازه 3 عنصر از نقطه شروع به بعد جدا كن (ورودي سوم)
ساختار


array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys = false ]] )

اطلاعات تكميلي:
PHP: array_slice - Manual (http://php.net/manual/en/function.array-slice.php)

Rezash
August 26th, 2010, 18:21
تابع array_map
ساختار :

array array_map ( callback $callback , array $arr1 [, array $... ] )
توضيح از Manual :

array_map() returns an array containing all the elements of arr1 after applying the callback function to each one. The number of parameters that the callback function accepts should match the number of arrays passed to the array_map()
اين تابع دو ورودي داره ، اولي اسم يك تابع و دومي يك آرايه
اين تابع شبيه همون array_walk هست تقريبا
خروجي اين تابع همون آرايه ورودي هست با اين تفاوت كه تابعي رو كه به عنوان ورودي اول وارد كرديم ، روي عناصرش تاثير گذاشته.
مثال 1 :


<?php
function cube($n)
{
return($n * $n * $n);
}

$a = array(1, 2, 3, 4, 5);
$b = array_map("cube", $a);
print_r($b);
?>



Array
(
[0] => 1
[1] => 8
[2] => 27
[3] => 64
[4] => 125
)

در مثال بالا تابع cube كارش اينه كه يك عدد ميگيره و به توان 3 ميرسونه (3 بار در خودش ضرب مي كنه)
حالا ما يك آرايه داريم و ميخوايم تك تك عناصرش رو به توان 3 برسونيم.درسته كه با foreach يا for يا روش هاي ديگه ميتونيم اين عمل رو انجام بديم ، اما خيلي ساده مي بينيم در خط 8 اين عمل يك باره انجام شده
مثال هاي بعدي رو توضيح نمي دم ، خودتون خروجي ها رو مقايسه كنيد:

<?php
$func = function($value) {
return $value * 2;
};

print_r(array_map($func, range(1, 5)));
?>



Array
(
[0] => 2
[1] => 4
[2] => 6
[3] => 8
[4] => 10
)

توجه : تابع range رو در ادامه توضيح مي دم.
مثال 3 :

<?php
function show_Spanish($n, $m)
{
return("The number $n is called $m in Spanish");
}

function map_Spanish($n, $m)
{
return(array($n => $m));
}

$a = array(1, 2, 3, 4, 5);
$b = array("uno", "dos", "tres", "cuatro", "cinco");

$c = array_map("show_Spanish", $a, $b);
print_r($c);

$d = array_map("map_Spanish", $a , $b);
print_r($d);
?>


// printout of $c
Array
(
[0] => The number 1 is called uno in Spanish
[1] => The number 2 is called dos in Spanish
[2] => The number 3 is called tres in Spanish
[3] => The number 4 is called cuatro in Spanish
[4] => The number 5 is called cinco in Spanish
)

// printout of $d
Array
(
[0] => Array
(
[1] => uno
)

[1] => Array
(
[2] => dos
)

[2] => Array
(
[3] => tres
)

[3] => Array
(
[4] => cuatro
)

[4] => Array
(
[5] => cinco
)

)

مثال 4 :

<?php
$a = array(1, 2, 3, 4, 5);
$b = array("one", "two", "three", "four", "five");
$c = array("uno", "dos", "tres", "cuatro", "cinco");

$d = array_map(null, $a, $b, $c);
print_r($d);
?>



Array
(
[0] => Array
(
[0] => 1
[1] => one
[2] => uno
)

[1] => Array
(
[0] => 2
[1] => two
[2] => dos
)

[2] => Array
(
[0] => 3
[1] => three
[2] => tres
)

[3] => Array
(
[0] => 4
[1] => four
[2] => cuatro
)

[4] => Array
(
[0] => 5
[1] => five
[2] => cinco
)

)

مثال 5:

<?php
$arr = array("stringkey" => "value");
function cb1($a) {
return array ($a);
}
function cb2($a, $b) {
return array ($a, $b);
}
var_dump(array_map("cb1", $arr));
var_dump(array_map("cb2", $arr, $arr));
var_dump(array_map(null, $arr));
var_dump(array_map(null, $arr, $arr));
?>


array(1) {
["stringkey"]=>
array(1) {
[0]=>
string(5) "value"
}
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}
array(1) {
["stringkey"]=>
string(5) "value"
}
array(1) {
[0]=>
array(2) {
[0]=>
string(5) "value"
[1]=>
string(5) "value"
}
}

تابع range:

array range ( mixed $low , mixed $high [, number $step ] )
اين تابع يك آرايه ايجاد مي كنه!آرايه اي كه شامل ارقام يا رشته هاي دلخواه ما در يك بازه(رنج) مشخص هست
ورودي سوم تابع مرحله پيشرف هست.اگر مثبت باشه در هر مرحله به اون اندازه جلو ميريم واگر منفي يا وارد نشده باشه يا ... باشه 1 در نظر گرفته ميشه؛اين قضيه در مثال به وضوح ديده ميشه

<?php
// array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
foreach (range(0, 12) as $number) {
echo $number;
}

// The step parameter was introduced in 5.0.0
// array(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100)
foreach (range(0, 100, 10) as $number) {
echo $number;
}

// Use of character sequences introduced in 4.1.0
// array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i');
foreach (range('a', 'i') as $letter) {
echo $letter;
}
// array('c', 'b', 'a');
foreach (range('c', 'a') as $letter) {
echo $letter;
}
?>

توجه : مثال ها و منبع مطلب Manual سايت رسمي مي باشد :)
سپاس

Rezash
August 27th, 2010, 19:13
list
طبق توضيحات manual پي اچ پي ، list در يك تابع واقعي به حساب نمياد بلكه يك ساختار زياني هست
با اين تابع مي تونيم در يك مرحله تعدادي متغير تعريف كنيم
مثال ها از manual:


<?php

$info = array('coffee', 'brown', 'caffeine');

// Listing all the variables
list($drink, $color, $power) = $info;
echo "$drink is $color and $power makes it special.\n";

// Listing some of them
list($drink, , $power) = $info;
echo "$drink has $power.\n";

// Or let's skip to only the third one
list( , , $power) = $info;
echo "I need $power!\n";

// list() doesn't work with strings
list($bar) = "abcde";
var_dump($bar); // NULL
?>




<table>
<tr>
<th>Employee name</th>
<th>Salary</th>
</tr>

<?php

$result = mysql_query("SELECT id, name, salary FROM employees", $conn);
while (list($id, $name, $salary) = mysql_fetch_row($result)) {
echo " <tr>\n" .
" <td><a href=\"info.php?id=$id\">$name</a></td>\n" .
" <td>$salary</td>\n" .
" </tr>\n";
}

?>

</table>



<?php

list($a, list($b, $c)) = array(1, array(2, 3));

var_dump($a, $b, $c);

?>



int(1)
int(2)
int(3)



<?php

$info = array('coffee', 'brown', 'caffeine');

list($a[0], $a[1], $a[2]) = $info;

var_dump($a);

?>



array(3) {
[2]=>
string(8) "caffeine"
[1]=>
string(5) "brown"
[0]=>
string(6) "coffee"
}

مثال ها تقربا واضح هستند ، اگر سوالي بود در خدمتم :)

Rezash
September 5th, 2010, 00:40
تابع array_replace

array array_replace ( array &$array , array &$array1 [, array &$array2 [, array &$... ]] )
اين تابع مقادير آرايه اول رو با مقادير همسان توابع بعدي جايگزين مي كند.
اگر كليدي كه در آرايه اول هست در آرايه دوم هم وجود داشته باشد مقدارش با مقدار مشابه در آرايه دوم جايگزين ميشود.
اگر كليدي در آرايه دوم موجود باشد ولي در آرايه اول نباشد در آرايه اول آن كليد ايجاد ميشود.
اگر كليدي فقط در آرايه اول وجود داشته باشد تغييري نمي كند.
اگر آرايه هاي متعددي براي جايگزيني داشته باشيم به ترتيب مقادير جايگزين مي شوند و مقدار آرايه هاي بعدي با قبلي ها جايگزين مي شوند.

return value
در صورت بروز خطا : null
در غير اينصورت : آرايه تغيير يافته
مثال :

<?php
$base = array("orange", "banana", "apple", "raspberry");
$replacements = array(0 => "pineapple", 4 => "cherry");
$replacements2 = array(0 => "grape");

$basket = array_replace($base, $replacements, $replacements2);
print_r($basket);
?>

Array
(
[0] => grape
[1] => banana
[2] => apple
[3] => raspberry
[4] => cherry
)
مثل هميشه منبع دست اول ! : PHP: array_replace - Manual (http://www.php.net/manual/en/function.array-replace.php)
من روي توابع خيلي توضيح نمي دم كه بتونم گريزي بر تمام توابع كاربردي داشته باشيم ، اگر كسي مشكلي در تابع خاصي داشت پ.خ بده بيشتر در تاپيك توضيح بدم.
سپاس

Rezash
September 9th, 2010, 08:54
array_rand
تابع array_rand
حتما تا به حال پيش اومده كه خواسته باشيم از بين عناصر يك آرايه يك يا بيش از يك عنصر رو به صورت رندوم انتخاب كنيم
راه اول :
1. به دست آوردن تعداد عناصر آرايه با تابعي مثل count
2. استفاده از تابعي مثل rand و ايجاد چند عدد در بازه مورد نظر
3. استفاده از ايندكس هاي بدست آمده
اما راه حل ساده تر و بهتر !
تابع array_rand
اين تابع 2 وروردي داره
اولي يك آرايه هست و اجباري
دومي يك عدد هست و اختياري و اگر وارد نشه 1 در نظر گرفته ميشه
آرايه اولي كه آرايه هست كه قرار هست از بينش چند عنصر انتخاب كنيم
و دومي تعداد عناصري هست كه قرار هست رندوم انتخاب بشند
‍« چه مقداري توسط اين تابع باز گردانده ميشود
اگر پارامتر دوم تابع وارد نشود يا 1 باشد فقط كليد عنصري كه به صورت رندوم انتخاب شده است ولي در غير اينصورت آرايه اي شامل مجموعه عناصر رندوم انتخاب شده
مثال :


<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

Rezash
October 9th, 2010, 18:06
بعد يك وقفه طولاني در آموزش تصميم گرفتم باز هم ساير توابع رو معرفي كنم!
تابع array_push()
اين تابع يك يا چند مقدار جديد رو به انتهاي آرايه ما اضافه مي كنه
مثال:


<?php
$stack = array("orange", "banana");
array_push($stack, "apple", "raspberry");
print_r($stack);
?>

خروجي :


Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)



البته مي تونيم به صورت زير و بدون استفاده از اين تابع هم ، ايندكس هاي جديد رو به صورت يكي يكي اضافه كنيم:


<?php
$stack = array("orange", "banana");
$stack[] = "apple";
$stack[] = "raspberry";
print_r($stack);
?>

خروجي :


Array
(
[0] => orange
[1] => banana
[2] => apple
[3] => raspberry
)


تابع array_pop
اين تابع آخرين عنصر آرايه رو حذف مي كنه و تغيير رو در خود آرايه اعمال مي كنه و نه متغيري كه به تابع نسب داده شده است.
مثال :


<?php
$stack = array("orange", "banana", "apple", "raspberry");
$fruit = array_pop($stack);
print_r($stack);
echo "<br> Fruit is : ".$fruit;
?>

خروجي :


Array
(
[0] => orange
[1] => banana
[2] => apple
)
Fruit is : raspberry

توضيحات از php.net كه كاملا واضح هست


array_pop() pops and returns the last value of the array, shortening the array by one element. If array is empty (or is not an array), NULL will be returned. Will additionally produce a Warning when called on a non-array.

اطلاعات بيشتر در مورد دو تابع اخير:
PHP: array_pop - Manual (http://ir.php.net/array_pop)
PHP: array_push - Manual (http://ir.php.net/array_push)

Rezash
October 13th, 2010, 21:02
تابع array_unshift
گاهي نياز داريم يك يا چند عنصر به اول آرايه خودمون اضافه كنيم. در اين صورت به جاي استفاده از روش هاي دستي و جابه جايي تك تك عناصر آرايه و استفاده از temp ميتونيم براحتي از تابع array_unshift استفاده كنيم.
مثال :


$queue = array("orange", "banana");
array_unshift($queue, "apple", "raspberry");
print_r($queue);


/*
Output
Array
(
[0] => apple
[1] => raspberry
[2] => orange
[3] => banana
)
*/

يكسري مثال خوب و توضيحات مختصر در ادرس :
Useful PHP Functions To Work With Arrays (http://www.go4expert.com/forums/showthread.php?t=7259)
ديدم كه مثال اين پست هم از همين جا بود، اگر كسي علاقه داشت مثال هاي جالبي داره.

Rezash
October 25th, 2010, 19:02
تابع array_search :
اين تابع مقداري رو دريافت و در صورت وجود داشتن در آرايه كليد مربوطه رو بر مي گرداند.اگر مقدار مورد نظر در آرايه پيدا نشه مقدار False برگشت داده ميشه :

mixed array_search ( mixed $needle , array $haystack [, bool $strict ] )
* تابع نسبت به حروف كوچك و بزرگ در رشته ها حساس مي باشد
needle : مقدار مورد جستجو
haystack : آرايه منبع
مثال :


<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array); // $key = 1;
?>

توضيحات بيشتر در :‌
PHP: array_search - Manual (http://www.php.net/manual/en/function.array-search.php)