Php 用户输入后给出响应的静态算法
我有两个数组:Php 用户输入后给出响应的静态算法,php,algorithm,Php,Algorithm,我有两个数组:F的长度为4,S的长度为25 用户可以从上述两个数组中选择任意数量的元素,例如从F中选择任意2个,从S中选择任意10个。根据用户选择的内容,我已从长度为100的另一个数组R中向用户作出响应。 我试着制作if-else,但在制作完之后就筋疲力尽了 100个。 那么有没有更好的方法 我的目标是为用户提供数组R中的一个索引 注:不涉及人工智能 编辑 目前我所做的是: if(in_array(1,$F) && in_array(12,$S)){ return $R[3
F的长度为4,S的长度为25
用户可以从上述两个数组中选择任意数量的元素,例如从F中选择任意2个,从S中选择任意10个。根据用户选择的内容,我已从长度为100的另一个
数组R中向用户作出响应。
我试着制作if-else,但在制作完之后就筋疲力尽了
100个。
那么有没有更好的方法
我的目标是为用户提供数组R中的一个索引
注:不涉及人工智能
编辑
目前我所做的是:
if(in_array(1,$F) && in_array(12,$S)){
return $R[3];
}else if(in_array(1,$F) && in_array(17,$s)){
return $R[91];
}else if(in_array(2,$F) && in_array(1,$F) && in_array(21,$S) && in_array(25,$S)){
return $R[23];
}else if(in_array(3,$F) && in_array(21,$S) && in_array(7,$S)){
return $R[17];
}..........
像这样的?创建类似@zerkms的地图
function getRKey(array $f, array $s)
{
// values map by order
$map_r_array = [
3 => ['f' => [1], 's' => [12]],
91 => ['f' => [1], 's' => [17]],
23 => ['f' => [1, 2], 's' => [21, 25]],
17 => ['f' => [3], 's' => [7, 21]],
];
foreach ($map_r_array as $key => $check)
{
// check one by one.
if (!array_diff($check['f'], $f) && !array_diff($check['s'], $s))
{
return $key;
}
}
return null;
}
$f = [1, 2, 3];
$s = [7, 21];
var_dump(getRKey($f, $s)); // int(17)
什么问题是什么?一些代码会很好!你的目标是什么?!你已经准备好所有的数组了吗?是的,我已经准备好了所有的数组。所以,返回$array100[2*10]
。您的索引可能是2*10。算法描述不清楚。