تصادفی گرفتن (array_rand)
تابع «array_rand» یک یا چند «کلید تصادفی» از آرایه برمی گرداند. تصادفی (Random) یعنی نتیجه هر بار قابل پیش بینی نیست. این برای قرعه کشی کلاسی یا انتخاب تصویرِ شانسی خیلی کاربردی است.
تعریف و کاربرد ساده
array_rand از آرایه یک کلید برمی گرداند. همچنین می تواند چند کلید بدهد. سپس با آن کلیدها مقدارها را بردار.
- آرایه را آماده کن.
- تعداد کلیدهای تصادفی را تعیین کن.
- با کلیدها مقدارها را بخوان.
سینتکس (Syntax)
array_rand($array, $number);
نکته: پارامتر $number اختیاری است. بدون آن، یک کلید برمی گردد.
مثال 1: چند کلید تصادفی و چاپ مقدارها
در این مثال سه کلید تصادفی می گیریم. سپس مقدار هر کلید را چاپ می کنیم.
<?php
$a = array("red", "green", "blue", "yellow", "brown");
$random_keys = array_rand($a, 3);
echo $a[$random_keys[0]] . "\n";
echo $a[$random_keys[1]] . "\n";
echo $a[$random_keys[2]];
?>
مثال 2: یک کلید تصادفی از آرایه انجمنی
آرایه انجمنی (Associative Array) آرایه ای با کلید متنی است. خروجی این تابع در این حالت یک کلید تصادفی است.
<?php
$a = array("a" => "red", "b" => "green", "c" => "blue", "d" => "yellow");
print_r(array_rand($a, 1));
?>
مثال 3: چند کلید متنیِ تصادفی
در اینجا از آرایه انجمنی دو کلید تصادفی می گیریم. سپس می توانیم مقدارها را با آن کلیدها برداریم.
<?php
$a = array("a" => "red", "b" => "green", "c" => "blue", "d" => "yellow");
print_r(array_rand($a, 2));
?>
جزئیات فنی کوتاه
خروجی می تواند یک کلید یا آرایه ای از کلیدها باشد. نسخه PHP از 4 پشتیبانی می کند. از PHP 5.2.1 آرایه کلیدها دیگر مخلوط نمی شود. از PHP 4.2 بذر تصادفی خودکار است. از PHP 7.1 مولد rand روی Mersenne Twister است.
لینک داخلی مفید
برای افزودن انتهایی، تابع array_push را ببین. همچنین صفحه آرایه ها در PHP را مرور کن.
جمع بندی سریع
- array_rand کلید تصادفی برمی گرداند، نه مقدار.
- برای مقدار، از کلید خروجی استفاده کن.
- $number را بده تا چند کلید بگیری.
- در آرایه های انجمنی نیز درست کار می کند.