繁体   English   中英

在数组php里面随机播放

[英]Shuffle inside array php

如何在数组中混洗数组? 我尝试了很多方法,但我做不到。 我认为这很简单,但我坚持这一点。

Array
(
    [2] => Array
        (
            [0] => 12011190
            [1] => 12011158
            [2] => 12011583
            [3] => 12012107
            [4] => 12011222
            [5] => 12010638
            [6] => 12013836
            [7] => 12012232
            [8] => 12011256
            [9] => 12010007
            [10] => 12012531
            [11] => 12012182
            [12] => 12013253
        )

    [6] => Array
        (
            [0] => 12011565
            [1] => 12010020
            [2] => 12011352
            [3] => 12014366
            [4] => 12011879
            [5] => 12011449
        )
)

我想在数组中随机播放。 我希望解释一下......

据我所知,你可以这样做(假设你想独立地改组每个子阵列):

foreach($array AS &$element) {
    shuffle($element);
}

或者像这样:

array_walk($array, function(&$value, $key) {
    shuffle($value);
});

这是一个可以使用的递归多级函数。

function shuffle_array($arr) {
    if (!is_array($arr)) return $arr;
    shuffle($arr);
    foreach ($arr as $key => $a) {
        if (is_array($a)) {
            $arr[$key] = shuffle_array($a);
        }
    }

    return $arr;
}

print_r(shuffle_array($array));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM