在随机位置启动数组,但按照顺序

时间:2017-02-08 09:51:09

标签: php arrays random shuffle

我目前拥有的是一个带有滑块图像链接的数组。目标是在数组中获得一个随机的起始位置,然后按照数组的顺序。

基本阵列:1 2 3 4 5 6 7 8 9 10 随机开始: 4 5 6 7 8 9 10 1 2 3

$attachments = get_children(
    array(
       'post_parent' => $attachment_holder['ID'],
        'post_status' => 'inherit',
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'orderby' => 'rand'));
    }

$attachments2 = get_children(
    array(
        'post_parent' => $attachment_holder['ID'],
        'post_status' => 'inherit',
        'post_type' => 'attachment',
        'post_mime_type' => 'image',
        'orderby' => 'rand'));


    shuffle($attachments2);
    $attachments2 = reset($attachments2); 
    $attachments2 = array($attachments2);

    $attachments = array_merge($attachments2, $attachments);

上面只输出一个随机的第一张图像,然后以常规序列开始。

所以: 4 1 2 3 4 5 6 7 8 9 10

我觉得array_chunk或array_slice可以帮助我,但我不太确定。

1 个答案:

答案 0 :(得分:2)

这样做:

<?php
$input = range(1, 20);

$start = array_rand($input);
$input = array_merge(array_slice($input, $start), array_slice($input, 0, $start));

print_r($input);

inplace

<?php
$input = range(1, 20);

array_splice($input, 0, 0, array_splice($input, array_rand($input)));

print_r($input);