假设使用这个数组$arr = array(a,b,c,d,e,f,g,h,i,j,k,l);//12个成员
然后我要从中分3次,分别抽出6/3/3个成员,不能重复
然后将第一次抽出的6个成员重新赋值为a
将第二次抽出的3个成员重新赋值为b
将剩余的3个成员重新赋值为c
大家有什么简洁的办法实现这个过程吗? 回复内容: 假设使用这个数组$arr = array(a,b,c,d,e,f,g,h,i,j,k,l);//12个成员
然后我要从中分3次,分别抽出6/3/3个成员,不能重复
然后将第一次抽出的6个成员重新赋值为a
将第二次抽出的3个成员重新赋值为b
将剩余的3个成员重新赋值为c
大家有什么简洁的办法实现这个过程吗?
shuffle()
抽取后的源数组, data => 抽取的数据 */function fun($arr=array(), $number = ''){ $a = array_rand($arr, $number); $data = array(); foreach ($a as $v) { $data[] = $arr[$v]; } $arr_new = array_diff($arr, $data); return array( 'arr_new' => $arr_new, 'data' => $data );}// 第1次抽取6个$res = fun($arr, 6);$first_data = $res['data'];// 第1次抽取的结果var_dump($first_data);// 第2次抽取3个$res = fun($res['arr_new'], 3);$second_data = $res['data'];// 第2次抽取的结果$second_arr = $res['arr_new'];// 剩下的结果var_dump($second_data);var_dump($second_arr);
多多指教