如何对数组进行混洗,以便在所有索引中获得唯一元素?

时间:2017-06-12 09:33:25

标签: php

我有一个数组$myAr=array("1", "2", "3", "4", "5", "6", "7").我想通过使用shuffle($myAr)将此数组混洗五次来创建另外五个数组。

我的要求是,零索引处的所有元素在所有数组中都应该是唯一的(即不重复)。同样适用于所有索引。

1 个答案:

答案 0 :(得分:0)

定义没有所需唯一值的数组。然后使用array_unshift添加第一个值。

示例:

$myAr=array("2", "3", "4", "5", "6", "7");

$fiveArray = array();

for ($i=0; $i < 5 ; $i++) { 
    shuffle($myAr);
    $fiveArray[$i] = $myAr;
    array_unshift($fiveArray[$i], 1);
}

echo '<pre>', print_r($fiveArray, true), '</pre> <hr/>';

显示:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 7
            [2] => 4
            [3] => 6
            [4] => 3
            [5] => 5
            [6] => 2
        )

    [1] => Array
        (
            [0] => 1
            [1] => 4
            [2] => 6
            [3] => 3
            [4] => 7
            [5] => 5
            [6] => 2
        )

    [2] => Array
        (
            [0] => 1
            [1] => 4
            [2] => 7
            [3] => 5
            [4] => 2
            [5] => 3
            [6] => 6
        )

    [3] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 7
            [3] => 3
            [4] => 6
            [5] => 5
            [6] => 4
        )

    [4] => Array
        (
            [0] => 1
            [1] => 7
            [2] => 5
            [3] => 4
            [4] => 3
            [5] => 6
            [6] => 2
        )

)