1. Hàm array_rand() trong PHP

Hàm array_rand() trong PHP sẽ tìm và lấy ra ngẫu nhiên phần tử có trong mảng. Cụ thể hàm array_rand() sẽ giúp ta tìm và trả về key ngẫu nhiên hoặc hàm sẽ trả về một mảng với những key ngẫu nhiên của mảng ban đầu nếu ta chỉ định hàm phải trả về nhiều hơn một.

Hàm array_rand() sẽ sử dụng một trình tạo số ngẫu nhiên giả. Vì vậy mà trong thực tế việc này sẽ không phù hợp với các mục đích liên quan đến mật mã. Hàm này được giới thiệu và sử dụng từ phiên bản PHP 4.0

2. Cú pháp hàm array_rand() trong PHP

Ta có cú pháp của hàm array_rand() trong PHP là :

array_rand($array, $num)

Trong đó :

  • $array : mảng đầu vào mà ta cần sử dụng . Tham số này là bắt buộc có trong hàm
  • $num : đề cập đến số lượng các số ngẫu nhiên sẽ được trả về. Giá trị này phải lớn hơn hoặc bằng một nếu không một lỗi sẽ được ném ra. Tham số này là không bắt buộc trong hàm

Hàm này trả về các giá trị được tạo ngẫu nhiên từ mảng ban đầu. Số phần tử trả về phụ thuộc vào giá trị của $num được gán cho hàm. Ta cũng có thể không gán giá trị $num cho hàm và lúc này giá trị mặc định sẽ là 1

Ví dụ : trả về một mảng với key ngẫu nhiên

<?php
$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,3);
echo '<pre>';
print_r ($random_keys);
?>

Kết quả

Array
(
    [0] => 0
    [1] => 1
    [2] => 4
)

Đây là việc lấy ra những key ngẫu nhiên với mảng cho trước. Ta có thể xem nó mang những value nào qua đoạn code sau:

<?php
$a=array("red","green","blue","yellow","brown");
$random_keys=array_rand($a,3);
echo $a[$random_keys[0]]."<br>";
echo $a[$random_keys[1]]."<br>";
echo $a[$random_keys[2]];

echo '<pre>';
print_r ($random_keys);
?>

Kết quả

red
blue
yellow
Array
(
    [0] => 0
    [1] => 2
    [2] => 3
)

Vì mình chạy code hai lần nên kết quả có thể khác kết quả phần trên một chút. Tuy nhiên những key trong mảng vẫn thuộc mảng ban đầu với giá trị tương ứng được in ra.

3. Ví dụ về hàm array_rand() trong PHP

Ví dụ 1: trả về một key ngẫu nhiên từ một mảng

<?php
$a=array("PHP"=>"a","Java"=>"a","HTML"=>"c","Python"=>"d");
print_r(array_rand($a,1));
?>

Kết quả

PHP

Ví dụ 2: trả về một mảng với key chuỗi ngẫu nhiên

<?php
$a=array("PHP"=>"a","Java"=>"a","HTML"=>"c","Python"=>"d");
echo '<pre>';
print_r(array_rand($a,3));
?>

Kết quả

Array
(
    [0] => Java
    [1] => HTML
    [2] => Python
)

Ví dụ 3: trả về một mảng với key chuỗi ngẫu nhiên

<?php  
$a=array("PHP"=>"a","Java"=>"a","HTML"=>"c","Python"=>"d");
$num = 2;  
echo '<pre>';
print_r(array_rand($a, $num));  
?>

Kết quả

Array
(
    [0] => PHP
    [1] => Python
)