我正在设法将用户组织成组并需要一种方法来检查它们。例如,我有一种检查性别的方法,如果没有性别不平衡则返回true,如果有,则返回false。我也有类似的方法来检查年龄分布和检查性别。对于这些方法中的每一种,我都有一种方法可以生成一组优化的组。
即。我有一种方法,可以根据性别优化群组。如果相应的检查返回false,我只会调用其中一种方法。我遇到的问题是,当我根据特定标准(即性别)优化组时,新优化组有可能搞砸了另一个检查标准。
例如,如果我检查年龄,性别和技能水平(我的第三次检查)并且我发现年龄不平衡,继续根据年龄优化群体,那么我可能会搞乱性别或技能等级分布。我对这个问题的解决方案是,如果我能找到一种方法来调用检查方法的所有变体,并且如果check all方法返回true则中断(所有检查都返回true,所有组都具有良好的年龄,性别和技能水平的平衡)。
例: 设A,B和C为检查方法,optimize_A,optimize_B,optimize_C为make优化组方法。我需要一些方法循环检查方法3!时间(因为有3种检查方法,我需要运行ABC,ACB,BAC,BCA,CAB,CBA)。或者我可以执行一个while循环并且如果方法检查all()返回true(所有检查都返回true,所有都有良好的分布)并且在运行检查方法的所有组合后中断。
有人可以帮我解决这个问题吗?请记住,我是一名新手程序员,之前从未做过这样的事情。感谢
修改:
我怎样才能在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
?>
答案 0 :(得分:1)
你几乎拥有它,只需删除最后的点。
$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