从特定值php数组计算

  • 本文关键字:数组 计算 php php
  • 更新时间 :
  • 英文 :


大家好,我需要帮助,想了解一下我的情况

我的例子:一些名称指定的权力,如

  • 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

相关内容

  • 没有找到相关文章