更新:我写了我的函数,它工作。
我自己的答案
<?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')
);
每次重新加载页面,输出的结果总是和上面的结果一样
只需合并数组,然后对生成的数组进行洗牌。
$rand = array_merge($array1, $array2);
shuffle($rand);
$rand现在包含了最终版本