如何在PHP中以不同的顺序调用函数


How can I call functions in different orders in PHP?

我正在制定一种方法来将用户组织到组中,并需要一种方法进行检查。例如,我有一种检查性别的方法,如果没有性别失衡,则返回true,如果有,则返回false。我也有类似的方法来检查年龄分布和性别。对于这些方法中的每一种,我都有一个方法,可以生成一个优化的组数组。

也就是说,我有一种根据性别优化小组的方法。如果相应的检查返回false,我只会调用其中一个方法。我遇到的问题是,当我基于特定标准(即性别)优化组时,新优化的组有可能混淆了另一个检查标准。

例如,如果我检查了年龄、性别和技能水平(我的第三次检查),发现年龄不平衡,然后根据年龄对小组进行优化,那么我可能会打乱性别或技能水平的分布。我对这个问题的解决方案是,如果我能找到一种方法,调用检查方法的所有变体,并在检查所有方法返回true时中断(所有检查返回true,所有组在年龄、性别和技能水平方面都有很好的平衡)。

例如:设A、B和C为检查方法,optimize_A、optimize_B、opticize_C为生成优化组方法。我需要通过某种方式循环检查方法3!次(因为有3种检查方法,我需要运行ABC、ACB、BAC、BCA、CAB、CBA)。或者,如果check-all()方法返回true(所有检查都返回true,都有良好的分布),我可以执行while循环并中断,并且在运行完所有检查方法的组合后中断。

有人能帮我解决这个问题吗?请记住,我是一个新手程序员,以前从未做过这样的事情。感谢

编辑:

我怎么能在php中做这样的JavaScript代码片段呢?

var arr = [check1, check2, check3],
    rand = Math.floor(Math.random() * arr.length),
    func = arr[rand];
func();

这是我的尝试:

<?php
$checks_to_run = array('check_gender','check_age','check_skill_level');
$rand = floor(rand(0, count($checks_to_run) - 1));
$func = $checks_to_run[$rand];
echo $this->.$func.($tmp); // $tmp is an array of groups 
?>

几乎完成了,只需删除末尾的点即可。

$checks_to_run = array('check_gender','check_age','check_skill_level');
$rand = floor(rand(0, count($checks_to_run) - 1));
$func = $checks_to_run[$rand];
echo $this->$func($tmp); // $tmp is an array of groups