我正在寻找一些基于参数随机化/混洗数组的函数或技术。 我将尝试描述我在寻找的东西。
假设我们有:
$begin_array = array( 1,2,3,4,5,6,7,8,9,0 );
然后我们调用函数:
magic_function( $begin_array, 1 );
每次根据函数(1)的第二个int参数返回相同的随机数组。 如果我们提供2,则返回的数组应该与第一个不同,但总是以相同的随机顺序。
换句话说,这个“魔术”函数应该根据第二个整数参数返回随机数组。
$ begin_array的长度总是不同。
第二个参数最多可达256个。
我期待的样本:
<?php
$begin_array = array( 1,2,3,4,5,6,7,8,9,0 );
magic_function( $begin_array, 1 );
// always returns the same randomized array based on second int argument 1
// for ex: array( 5,2,1,8,3,9,6,4,7,0 );
magic_function( $begin_array, 2 );
// always returns the same randomized array based on second int argument 2
// for ex: array( 0,3,4,8,9,1,2,6,7,5 );
?>
我希望你理解我;)
提前谢谢你,朋友们!
答案 0 :(得分:0)
你正在寻找的是一个随机函数,它使用由第二个参数播种的随机函数。
您可以通过将this Javascript array shuffle answer转换为PHP来实现此目的,并使用第二个参数将seeding随机数生成器转换为:
function deterministic_shuffle(array $array, $seed)
{
mt_srand($seed); // set the initial state
// shuffle implementation using mt_rand()
mt_srand(); // seed it again with random value to avoid affecting other code
return $array;
}