簡體   English   中英

如何在PHP中隨機組合兩個數組

[英]How to Combine two arrays randomly in PHP

如何將兩個數組合並為一個數組,我要求的方式是第三個組合數組應該包含一個數組中的一個值,而下一個數組應該包含其他數組等等。或者(它可以是隨機的)ex:

$arr1 = (1, 2, 3, 4, 5);
$arr2 = (10, 20, 30, 40, 50);

和組合陣列

$arr3 = (1, 10, 2, 20, 3, 30, ...);

如果它可以是隨機的,這將解決您的問題:

$merged = array_merge($arr1, $arr2);
shuffle($merged);

我還提供了一個有趣的功能,可以產生您在問題中的確切輸出。 無論兩個數組的大小如何,它都可以工作。

function FosMerge($arr1, $arr2) {
    $res=array();
    $arr1=array_reverse($arr1);
    $arr2=array_reverse($arr2);
    foreach ($arr1 as $a1) {
        if (count($arr1)==0) {
            break;
        }
        array_push($res, array_pop($arr1));
        if (count($arr2)!=0) {
            array_push($res, array_pop($arr2));
        }
    }
    return array_merge($res, $arr2);
}

這將返回一個隨機數組:

$merged = array_merge($arr1,$arr2);
shuffle($merged);
sort($arr3 = array_merge($arr1, $arr2));

array_merge()會將您的數組合並為一個。 sort()將對組合數組進行排序。

如果你想隨機而不是排序:

shuffle($arr3 = array_merge($arr1, $arr2));

$arr3包含您正在尋找的數組。

您可以使用

<?php
arr3 = array_merge ($arr1 , $arr2 );
print_r(arr3);
?>

將輸出

$arr3 = (1,2,3,4,5,10,20,30,40,50)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM