首頁 >後端開發 >php教程 >[演算法]PHP隨機合併數組並保持原始排序

[演算法]PHP隨機合併數組並保持原始排序

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB原創
2016-07-29 09:11:291057瀏覽

場景

原有帖子列表A,現需在A中推廣新業務B,則需要在A列表中1:1混合B的數據,隨機混合,但需保持A和B兩列表原來的數據排序。具體參考下面範例的效果。

原理

  1. 獲知總共元素數量N;
  2. for循環N次,取隨機數;
  3. 根據隨機數依序從頭獲取A或B的值,推入新數組中;
  4. rr

範例:

<code>//随机合并两个数组元素,保持原有数据的排序不变(即各个数组的元素在合并后的数组中排序与自身原来一致)
function shuffleMergeArray() {
    $mergeArray = array();
    $sum = count($array1) + count($array2);
    for ($k = $sum; $k > 0; $k--) {
        $number = mt_rand(1, 2);
        if ($number == 1) {
            $mergeArray[] = $array2 ? array_shift($array2) : array_shift($array1);
        } else {
            $mergeArray[] = $array1 ? array_shift($array1) : array_shift($array2);
        }
    }


    return $mergeArray;
}</code>
以上就介紹了[演算法]PHP隨機合併數組並保持原始排序,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn