antikirra/array-shuffle

1.0.0 2023-05-24 13:17 UTC

This package is auto-updated.

Last update: 2024-09-24 20:17:56 UTC


README

使用任何事物的数值表示(无论是客户端的IP地址、格式为YYYYMMDD的日期,还是唯一的用户标识符),您可以生成一个以伪随机方式排序的确定性数据数组。这可以用于实施商业任务和编写测试。

当使用关联数组、深度嵌套数组或包含对象的数组时请谨慎。此库的实现不能保证在所有提及的情况下都能产生可预测的结果。特别关注实现的简单性和数据处理速度。

安装

composer require antikirra/array-shuffle

基本用法

<?php

require __DIR__ . '/vendor/autoload.php';

// only if the function has not been defined in the global scope
array_shuffle($array, 100500);

// if the function could not be defined globally
\Antikirra\array_shuffle($array, 100500);

// under the hood
\Antikirra\ArrayShuffle\ArrayShuffle::shuffle($array, 100500);

演示

<?php

require __DIR__ . '/vendor/autoload.php';

$array = [0, 2, 6, 1, 8, 9, 5, 4, 3, 7];

$seed = 100500;

$array1 = array_shuffle($array, $seed);

print_r($array1); // [1, 2, 4, 7, 8, 6, 5, 3, 9, 0]

$array2 = $array1;

for ($i = 0; $i < $seed; $i++) {
    shuffle($array2);
}

$array3 = array_shuffle($array2, $seed);

print_r($array3); // [1, 2, 4, 7, 8, 6, 5, 3, 9, 0]

var_dump($array1 === $array3); // true