/**
*将数组随机打乱(数组下标为连续数字)
*
*/
function randArray($rArray)
{
$len = count($rArray);
foreach($rArray as $k=>$v)
{
$r = mt_rand(0,$len - 1);
$temp = $rArray[$k];
$rArray[$k] = $rArray[$r];
$rArray[$r] = $temp;
}
return $rArray;
}
/**
*将数组随机打乱(数组下标不限)
*
*/
function randArray2($rArray)
{
$keys = array_keys($rArray);
$keys = randArray($keys);
foreach($keys as $k=>$v)
{
$r2Array[$v] = $rArray[$v];
}
return $r2Array;
*将数组随机打乱(数组下标为连续数字)
*
*/
function randArray($rArray)
{
$len = count($rArray);
foreach($rArray as $k=>$v)
{
$r = mt_rand(0,$len - 1);
$temp = $rArray[$k];
$rArray[$k] = $rArray[$r];
$rArray[$r] = $temp;
}
return $rArray;
}
/**
*将数组随机打乱(数组下标不限)
*
*/
function randArray2($rArray)
{
$keys = array_keys($rArray);
$keys = randArray($keys);
foreach($keys as $k=>$v)
{
$r2Array[$v] = $rArray[$v];
}
return $r2Array;
}
===========================================================
测试
$rArray = array();
$total = 15;
$i = 0;
while($i < $total) //初始化一个数组
{
$rArray[$i] = $i;
$i++;
}
$rArray['aa'] = 15; //非数字下标
$rArray[20] = 20;
foreach($rArray as $k=>$v) //打印原始数组
{
echo " ".$k.'=>'.$v;
}
$rArray = randArray2($rArray); //调用随机方法
foreach($rArray as $k=>$v) //打印处理后的数组
{
echo " ".$k.'=>'.$v;
}