PHP合并数组但只有第二个数组是随机的

时间:2015-03-02 21:30:29

标签: php

我有两个数组:

$divs = array('One','Two','Three','Four','Five','Six');
$ads = array ('Ad1', 'Ad2', 'Ad3');

我希望像这样合并:

$mix_divs = array_merge($divs, $reklama);

但是, $ divs 必须保持在同一个地方,在这些地方之间我需要添加随机 $ ads 数组。

shuffle($ads);

最终输入必须是这样的:

$mix_divs = array('One','Two','Ad2','Three','Four','Ad3','Five','Six','Ad1');

 $mix_divs = array('Ad2','One','Two','Ad1','Three','Four','Five','Ad3','Six');

$ ads必须随机插入。

我该怎么做?感谢

2 个答案:

答案 0 :(得分:1)

您只需在div中随机插入每个广告:

$divs = array('One','Two','Three','Four','Five','Six');
$ads = array ('Ad1', 'Ad2', 'Ad3');

$newArray = array_merge($divs);
for ($i = 0; $i < count($ads); $i++) {
    $position = rand(0, count($newArray));
    array_splice($newArray, $position, 0, $ads[$i]);
}

我刚尝试print_r($newArray),它给了我:

Array
(
    [0] => One
    [1] => Two
    [2] => Three
    [3] => Ad2
    [4] => Four
    [5] => Ad1
    [6] => Five
    [7] => Ad3
    [8] => Six
)

答案 1 :(得分:1)

$divs = array('One','Two','Three','Four','Five','Six');
$ads  = array('Ad1', 'Ad2', 'Ad3');

shuffle($ads);
while ($ads) array_splice($divs, array_rand($divs), 0, array_pop($ads));

print_r($divs);

输出:

Array
(
    [0] => Ad1
    [1] => One
    [2] => Two
    [3] => Ad3
    [4] => Three
    [5] => Four
    [6] => Five
    [7] => Ad2
    [8] => Six
)