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);