Php 从现有阵列中创建新的随机阵列,而不更改原始阵列
我有这个阵列-Php 从现有阵列中创建新的随机阵列,而不更改原始阵列,php,arrays,Php,Arrays,我有这个阵列- $array = array( 0 => "a", 1 => "b", 2 => "c" ); 我想从这个阵列中得到一个新的阵列: $new_randomized_array = array( 0 => "c", 1 => "a", 2 => "b" ); 使用shuffle($array)将更改我不想要的原始数组 我可以使用: $rand_keys = array_rand($array,
$array = array(
0 => "a",
1 => "b",
2 => "c"
);
我想从这个阵列中得到一个新的阵列:
$new_randomized_array = array(
0 => "c",
1 => "a",
2 => "b"
);
使用shuffle($array)
将更改我不想要的原始数组
我可以使用:
$rand_keys = array_rand($array, 3);
foreach($rand_keys as $k => $v) {
$new_randomized_array[] = $array[$v];
}
但这不是多余的吗?
我想php已经有了类似的函数,但我找不到它。在php中,数组是值类型。因此,首先分配新数组,然后洗牌新数组。或者,您可以通过函数调用(也可以通过值来实现)
您可以洗牌原始数组的副本。
function shuffled_array($a) {
shuffle($a);
return $a;
}
$a = array(1, 2, 3);
$b = shuffled_array($a);
print_r($a);
print_r($b);