php对数组内元素进行随机调换的方法

要对 PHP 数组内的元素进行随机调换(即随机打乱数组元素的排列顺序),可以使用 PHP 内置的 shuffle() 函数。

要对 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对数组内元素进行随机调换的方法

基础教程推荐