假設使用這個數組
$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);
多多指教