📜  如何从PHP中的数组中获取随机值?

📅  最后修改于: 2022-05-13 02:24:09.463000             🧑  作者: Mango

如何从PHP中的数组中获取随机值?

PHP有两个函数可以从数组中获取随机值。 shuffle() 和 array_rand()函数用于从数组中获取随机值。

例子:

Input : $arr = ("a"=>"21", "b"=>"31", "c"=>"7", "d"=>"20")

// Get one random value
Output :7

Input : $arr = ("a"=>"21", "b"=>"31", "c"=>"7", "d"=>"20")

// Get two random values
Output : 21 31

方法一:该方法讨论的是 shuffle()函数在PHP中从数组中获取随机值。
PHP | shuffle()函数: shuffle()函数是PHP的一个内置函数,用于对数组中元素的顺序进行打乱或随机化。此函数为数组中的元素分配新键。它还将删除任何现有的键,而不仅仅是重新排序键并从零开始分配数字键。

句法:

bool shuffle( $array )

例子:



PHP
"21", "b"=>"31", "c"=>"7", "d"=>"20" );
 
// Use shuffle function to randomly assign numeric
// key to all elements of array.
shuffle($arr);
 
// Display the first shuffle element of array
echo $arr[0];
 
?>


PHP
"21", "b"=>"31", "c"=>"7", "d"=>"20" );
 
// Use array_rand function to returns random key
$key = array_rand($arr);
 
// Display the random array element
echo $arr[$key];
 
?>


PHP
"21", "b"=>"31", "c"=>"7", "d"=>"20" );
 
// It specify the number of element
$num = 2;
  
// It returns array of random keys
$keys = array_rand( $arr, $num );
 
// Display the array element
echo $arr[$keys[0]]." ".$arr[$keys[1]];
 
?>


输出:
31

在上面的示例中,关联数组的键已更改。 shuffle()函数从零开始为元素随机分配键。由于 shuffle() 永久更改数组的键。

方法二:在PHP使用 array_rand()函数从数组中获取随机值。
PHP | array_rand()函数: array_rand()函数是PHP的一个内置函数,用于从数组中获取随机数量的元素。元素是一个键,可以返回一个或多个键。

句法:

array_rand( $array, $num )

这个函数接受两个参数$array$num 。 $array 变量存储数组元素, $num 参数保存需要获取的元素数量。此参数的默认值为 1。

示例 1:

PHP

"21", "b"=>"31", "c"=>"7", "d"=>"20" );
 
// Use array_rand function to returns random key
$key = array_rand($arr);
 
// Display the random array element
echo $arr[$key];
 
?>
输出:
21

在上面的例子中,我们没有明确指定第二个参数的值,所以默认值为 1,array_rand() 将返回一个随机键。

示例 2:此示例明确指定第二个参数的值,因此 array_rand()函数将返回随机键数组。

PHP

"21", "b"=>"31", "c"=>"7", "d"=>"20" );
 
// It specify the number of element
$num = 2;
  
// It returns array of random keys
$keys = array_rand( $arr, $num );
 
// Display the array element
echo $arr[$keys[0]]." ".$arr[$keys[1]];
 
?>
输出:
21 7