> 백엔드 개발 > PHP 튜토리얼 > [알고리즘] PHP는 배열을 무작위로 병합하고 원래 순서를 유지합니다.

[알고리즘] PHP는 배열을 무작위로 병합하고 원래 순서를 유지합니다.

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-07-29 09:11:29
원래의
1050명이 탐색했습니다.

시나리오

원본 게시물 목록 A, 이제 A에서 새로운 비즈니스 B를 홍보해야 하고 목록 A에서 B의 데이터를 1:1 비율로 무작위로 혼합해야 하지만 A와 B를 모두 유지해야 합니다. 목록의 원본 데이터가 정렬됩니다. 자세한 내용은 다음 예를 참조하세요.

원리

  1. 전체 요소 수 N을 가져옵니다.
  2. for 루프를 N번 가져오고
  3. 처음부터 A를 가져옵니다. 또는 B 값을 기준으로 새 배열에 푸시합니다.

예:

<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 튜토리얼에 관심이 있는 친구들에게 도움이 되길 바랍니다.

<code>合并前的数组:
$array1 = array(1, 2, 3, 4);
$array2 = array('a', 'b', 'c', 'd', 'e');

合并后的数据:
$mergeArray = array (
  0 => 'a',
  1 => 1,
  2 => 'b',
  3 => 2,
  4 => 'c',
  5 => 'd',
  6 => 3,
  7 => 4,
  8 => 'e',
)</code>
로그인 후 복사

관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿