本文讲述如何用PHP实现在数组中随机取出指定个数的子集
#关键: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 = array(); if ($count >= count($array)) { $_arr_return = $array; } else if ($count > 0) { $temp = array_rand($array, $count);//随机返回指定数量键值 $count > 1 返回键值数组,$count = 1 返回键值字符串, if ($count == 1) $temp = array($temp); //重组数组 foreach ($temp as $val) $_arr_return[] = $array[$val]; } return $_arr_return; } $_arr_str = array('你', '看', '我', '哪', '里', '像', '好', '人'); $_count_random = '3'; print_r(rand_arr_from_array($_arr_str, $_count_random));