我想将包含stdClasses的数组随机化为每个键的值,并且stdclasses顺序必须是原始的。
例如原始数组如下所示:
Array(
[0]=>stdClass(/*lots of keys with value that must stay here and stay in order
for example [id]=1 [name]=One*/)
[1]=>stdClass(/*lots of keys with value that must stay here and stay in order
for example [id]=2 [name]=Two*/)
[2]=>stdClass(/*lots of keys with value that must stay here and stay in order
for example [id]=3 [name]=Three*/)
[3]=>stdClass(/*lots of keys with value that must stay here and stay in order
for example [id]=4 [name]=Four*/)
)
这就是我想要达成的目标:
Array(
[3]=>stdClass(/*lots of keys with value that must stay here and stay in order
for example [id]=4 [name]=Four*/)
[0]=>stdClass(/*lots of keys with value that must stay here and stay in order
for example [id]=1 [name]=One*/)
[1]=>stdClass(/*lots of keys with value that must stay here and stay in order
for example [id]=2 [name]=Two*/)
[2]=>stdClass(/*lots of keys with value that must stay here and stay in order
for example [id]=3 [name]=Three*/)
)
我尝试了这个函数PHP Random Shuffle Array Maintaining Key => Value但是这也使stdClasses混乱,这并不好。 例如,零键的class-> id被填充到第三个键
而且我不知道如何以正确的方式随机化。
答案 0 :(得分:0)
这会使您的数组混乱并保持键/值关联。
$array = array('a'=> '1', 'b'=>'2', 'c'=>'3');
function shuffle_assoc($array) {
$keys = array_keys($array);
shuffle($keys);
$result = array();
foreach ($keys as $k) {
$result[$k] = $array[$k];
}
return $result;
}
$result = shuffle_assoc($array);
// $result = array('b'=>'2', 'c'=>'3', 'a'=>'1')