PHP裡一個12成員的數組,隨機挑出6/3/3個成員(不重複),然後重新賦值,有什麼簡潔的辦法實現?

來源:互聯網
上載者:User

假設使用這個數組

$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);

多多指教

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.