要对 PHP 数组内的元素进行随机调换(即随机打乱数组元素的排列顺序),可以使用 PHP 内置的 shuffle() 函数。
shuffle() 函数的语法如下:
shuffle($array);
其中,$array 表示要进行随机打乱顺序的数组。这个数组可以是索引数组或关联数组。当完成打乱顺序后,$array 数组的键名和键值都会被打乱。
下面通过两个示例进行说明:
示例1:随机打乱一个索引数组
假设有一个索引数组 $numbers,包含数字 1~10。现在需要把数组内的元素顺序打乱,可以使用以下代码:
<?php
$numbers = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); // 定义一个包含数字1~10的索引数组
shuffle($numbers); // 随机打乱数组元素的顺序
print_r($numbers); // 打印出随机打乱后的数组
?>
这段代码的输出结果可能是:
Array
(
[0] => 6
[1] => 2
[2] => 7
[3] => 8
[4] => 10
[5] => 1
[6] => 3
[7] => 4
[8] => 9
[9] => 5
)
可以看到,$numbers 数组的元素顺序已经被随机打乱了。
示例2:随机打乱一个关联数组
现在有一个关联数组 $fruits,里面存放了一些水果名称和对应的价值。需要把数组内的元素随机打乱,以模拟一个随机选取水果的场景。可以使用以下代码:
<?php
$fruits = array(
"apple" => 5.5,
"banana" => 3.5,
"orange" => 6,
"pear" => 4,
"grape" => 8
); // 定义一个关联数组,存放水果名称和对应的价值
shuffle($fruits); // 随机打乱数组元素的顺序
print_r($fruits); // 打印出随机打乱后的数组
?>
这段代码的输出结果可能是:
Array
(
[0] => 8
[1] => 5.5
[2] => 4
[3] => 3.5
[4] => 6
)
可以看到,$fruits 数组的元素顺序已经被随机打乱了。需要注意的是,这时候数组的键名也被打乱了,因为 shuffle() 函数只是随机打乱了数组的值,没有保留原来的键名。如果需要保留原来的键名,可以先用 array_keys() 函数获取原数组的所有键名,打乱顺序后再使用 foreach 循环实现重新赋值,具体代码实现略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php对数组内元素进行随机调换的方法 - Python技术站