大家好,我需要帮助,想了解一下我的情况
我的例子:一些名称指定的权力,如
- jhon = 20
- 阿里扎= 30
- 瑞哈娜= 40
- adiba = 50
- 黑色= 1000
- white = 7500
- red = 3500
当有人输入输入量为50时,则
- i need output (jhon and aliza)
如果输入量为70,则
- 输出如下(adiba and jhon)
如果输入为4500则
- 如何得到这样的输出黑色和红色
$groups_name = array("jhon"=>"20", "aliza"=>"30", "rehana"=>"40",
"adiba"=>"50", "black"=>"1000", "white"=>"7500", "red"=>"3500");
你可以只用一个for循环:
$groups_name =
['jhon' => 20,
'aliza' => 30,
'rehana' => 40,
'adiba' => 50,
'black' => 1000,
'white' => 7500,
'red' => 3500];
$inputs = [50, 70, 4500];
function get_names($array, $input){
foreach ($array as $name=>$value) {
$target = abs($value - $input);
if(in_array($target, array_values($array))){
$pair = array_flip($array)[$target];
echo "($name, $pair)";
break;
}
}
}
结果:
get_names($groups_name, $inputs[0]); // (jhon, aliza)
get_names($groups_name, $inputs[1]); // (jhon, adiba)
get_names($groups_name, $inputs[2]); // (black, red)
请做小更新:
$groups_name =
['jhon' => 20,
'aliza' => 30,
'rehana' => 40,
'adiba' => 50,
'black' => 1000,
'white' => 7500,
'red' => 3500];
$inputs = [50, 70, 4500];
function get_names($array, $input){
foreach ($array as $name=>$value) {
$target = abs($value - $input);
if(in_array($target, array_values($array))){
$pair = array_flip($array)[$target];
echo "($name, $pair)";
break;
}
}
}
结果:
get_names($groups_name, $inputs[0]); // (jhon, aliza)
get_names($groups_name, $inputs[1]); // (jhon, adiba)
get_names($groups_name, $inputs[2]); // (black, red)
- 只适用于两个值 如果输入值为120,则
output ( Adiba + Rehana + Aliza )
如果输入值为1120,则
output ( Adiba + Rehana + Aliza + Black )
如果输入值与给定数组不匹配
then show msg not font