关键:array_rand() 函数返回数组中的随机键名,或者如果您规定函数返回不只一个键名,则返回包含随机键名的数组。
思路:先使用array_rand()随机取出所需数量键名,然后将这些键名指向的值重新组合为数组
/**
* 数组中取出随机取出指定数量子值集
*
* @param $array array
* @param $count int
* @return array
*/
function rand_arr_from_array($array, $count) {
!is_int($count) && $count = intval($count);
if ($count <0) return false;
$_arr_return &#61; array();
if ($count >&#61; count($array)) {
$_arr_return &#61; $array;
} else if ($count > 0) {
$temp &#61; array_rand($array, $count); //随机返回指定数量键值 $count > 1 返回键值数组&#xff0c;$count &#61; 1 返回键值字符串&#xff0c;
if ($count &#61;&#61; 1) $temp &#61; array($temp);
// 重组数组
foreach ($temp as $val) $_arr_return[] &#61; $array[$val];
}
return $_arr_return;
}
$_arr_str &#61; array(&#39;你&#39;, &#39;看&#39;, &#39;我&#39;, &#39;哪&#39;, &#39;里&#39;, &#39;像&#39;, &#39;好&#39;, &#39;人&#39;);
$_count_random &#61; &#39;3&#39;;
print_r(rand_arr_from_array($_arr_str, $_count_random));
// Array ( [0] &#61;> 你 [1] &#61;> 看 [2] &#61;> 好 )
?>