數(shù)組,是有序的元素序列。在c語(yǔ)言中, 數(shù)組屬于構(gòu)造數(shù)據(jù)類(lèi)型。一個(gè)數(shù)組可以分解為多個(gè)數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類(lèi)型或是構(gòu)造類(lèi)型。因此按數(shù)組元素的類(lèi)型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類(lèi)別。
本文講述如何用php實(shí)現(xiàn)在數(shù)組中隨機(jī)取出指定個(gè)數(shù)的子集
#關(guān)鍵:array_rand() 函數(shù)返回?cái)?shù)組中的隨機(jī)鍵名,或者如果您規(guī)定函數(shù)返回不只一個(gè)鍵名,則返回包含隨機(jī)鍵名的數(shù)組。
#思路:先使用array_rand()隨機(jī)取出所需數(shù)量鍵名,然后將這些鍵名指向的值重新組合為數(shù)組
/
* 數(shù)組中取出隨機(jī)取出指定數(shù)量子值集
* @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);//隨機(jī)返回指定數(shù)量鍵值 $count > 1 返回鍵值數(shù)組,$count = 1 返回鍵值字符串,
if ($count == 1) $temp = array($temp);
//重組數(shù)組
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));