0

2 つの配列をマージ/ミックスしたいのですが、ランダムに「ミックス」したいのですが、シャッフルはしたくありません。例えば:

$first = array(1,2,3,4);
$second = array(10,20,30,40);

可能な「ミックス」は次のとおりです。

$merged = array(1,10,20,30,2,40,3,4);
$merged = array(10,1,2,20,30,3,4,40);
$merged = array(1,2,3,10,20,4,30,40);

値を取り戻せば、元の順序のままであることに注意してください。

1,2,3,4
10,20,30,40

PHPでこれを行う簡単な方法はありますか?

4

4 に答える 4

0

これを試してみませんか?

    <?php 


        $first = array(1,2,3,4);
        $second = array(10,20,30,40);

        $arrayMixed=array();
        $firstReverse=array_reverse($first);
        $secondReverse=array_reverse($second);

        $firstReverseCount = count($firstReverse);
        $secondReverseCount = count($secondReverse);

        foreach($firstReverse as $key=>$val) {
            if ($firstReverseCount>0) { 

                    array_push($arrayMixed, array_pop($firstReverse));

                    if ($secondReverseCount>0) {
                        array_push($arrayMixed, array_pop($secondReverse));
                    }

            }
        }
        $ArrayMixeddata =  array_merge($arrayMixed, $second);       


        echo "<pre>";
            print_r($ArrayMixeddata);
        echo "</pre>";
?>
于 2013-11-12T10:35:37.260 に答える