我想随机化一些像这样的字符串。
默认字符串:
one,two,three,four,five,six,seven
我需要:
six,three,one,seven,two,four,five
我只需要按照每个人的顺序随机,与,
分开。
如何在PHP中完成?
答案 0 :(得分:3)
$input = 'one,two,three,four,five,six,seven';
$myArray = explode(',', $input);
shuffle($myArray);
echo implode(',', $myArray);
答案 1 :(得分:2)
// We can't shuffle a list, but we can shuffle an array.
$things = array('one','two','three','four','five','six','seven');
// Shuffle randomly changes the order of the array. It uses references so it doesn't
// make a copy of the array.
shuffle($things);
// then to display on the screen, either
foreach ($things as $thing) {
echo $thing.'<br>';
}
// or
echo implode(',', $things);
答案 2 :(得分:1)
创建两个数组。在第一个,放入有序列表。
$things = array('one','two','three','four','five','six','seven');
然后创建一个与$ things数组具有相同元素数的随机数数组。
$numItems = count($things)
for ($i = 0; $i < $numItems; $i++) {
$randomLst[$i] = $i;
$temparray[$i] = mt_rand(0, 1073741823);
}
array_multisort($temparray, SORT_ASC, $randomLst, SORT_ASC);
所以现在你有了你的项目数组和一组随机数字。使用随机数字数组来调用您的项目数组。这样的事情。
for ($i = 0; $i < $numItems; $i++) {
echo $things[$randomLst][i];
}
当您需要新的随机列表时,请创建一个新的$ randomLst。