数组合并递归静态随机

时间:2011-09-15 06:42:09

标签: php multidimensional-array

更新:我已经编写了我的功能,但它确实有效。

我自己的答案

<?php
function array_merge_recursive_random_static($first_array, $second_array, $key='')
{
    $merged_array = array_merge_recursive($first_array, $second_array);
    $arrays = &$merged_array;
    mt_srand(strlen($key)); 
    for ($i = count($arrays) - 1; $i > 0; $i--)
    { 
        $j = @mt_rand(0, $i); 
        $tmp = $arrays[$i]; 
        $arrays[$i] = $arrays[$j]; 
        $arrays[$j] = $tmp; 
    }
    return $arrays;
}
?>

我自己的问题:

我有两个这样的数组:

$array2 = array(
          0 => array('id' => 'dada', 'title' => 'this dada', 'desc' => 'dadaeating'),
          1 => array('id' => 'caca', 'title' => 'this caca', 'desc'=> 'caca eating') 
);

$array2 = array(
          0 => array('id' => 'baba', 'title' => 'this baba', 'desc' => 'baba eating'),
          1 => array('id' => 'memo', 'title' => 'this memo', 'desc'=> 'memo eating') 
);

我想合并$ array1和$ array2并使其成为静态随机唯一,所以我希望我的结果如下:

$arrays = array(
          0 => array('id' => 'caca', 'title' => 'this caca', 'desc' => 'cacaeating'),
          2 => array('id' => 'memo', 'title' => 'this memo', 'desc'=> 'memo eating'),
          3 => array('id' => 'dada', 'title' => 'this dada', 'desc'=> 'dada eating'),
          4 => array('id' => 'baba', 'title' => 'this baba', 'desc'=> 'baba eating')
);

每次我重新加载页面时,输出结果总是像上面的结果一样。

1 个答案:

答案 0 :(得分:2)

只需合并数组,然后随机播放生成的数组。

$rand = array_merge($array1, $array2);
shuffle($rand);

$ rand现在包含最终版本。