php - 如何根据 PHP 中选定的百分比返回数组的一部分?

标签 php

我想做的是获取一个名称列表(来自输入),比如说 100,将它们打乱,然后根据数组的特定百分比 (n) 返回一个随机选择。

例如,如果数组有 100 个元素(名称),则返回 5%,即打乱数组中的 5 个随机名称。我尝试过在谷歌上搜索解决方案,但找不到太多,而且很茫然,无法只返回一个打乱的数组。

(摘录)

if(isset($_POST['submit']) === true) {

    $names = $_POST['ShuffleNames'];

    $namesArray = explode("\n", $names);
    shuffle($namesArray);

    //display each name on new line
    foreach($namesArray as $name) {
        echo "<li>". $name . "</li>";
    }

}

最佳答案

您可以按如下方式进行:

  • 接受用户输入 - 数组和百分比
  • 使用 count() 计算数组元素的数量
  • 计算百分比:(计数/百分比)* 100
  • 使用 array_slice() 对数组进行切片并返回结果

作为函数:

function array_percentage($array, $percentage) 
{
    shuffle($array);
    $count = count($array);
    $result = array_slice($array, 0, ceil($count*$percentage/100));
    return $result;
}

您可以像这样使用它:

if(isset($_POST['submit'])) {    
    $names = $_POST['ShuffleNames'];
    $namesArray = explode("\n", $names);
    print_r(array_percentage($namesArray, 5));    
}

<强> Demo!

关于php - 如何根据 PHP 中选定的百分比返回数组的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18772348/

相关文章:

Javascript onchange(this.value,that.value)不适用于ipad

php - 我使用 if else then 的语法有错误

PHP MySQL - 按速度指定跟踪车辆状态,MOVE STOP START

javascript - 跨域上传图片

php - Url() 基于产品选择

php - 使用特殊键对数组中的数据进行排序

php - 从mysql数据库中检索特殊字符,php

php - 如何将自定义数据发送到 Paypal 并接收回来

javascript - 如何正确评估字符串变量作为 jQuery.post() 中的数据

PHPStorm 10、XAMPP、Xdebug/Zend 调试器