Php 从用户输入查找数组中最近的值
我有一个GDP数据的CSV,包括名义和购买力平价。结构为国家名义购买力平价 例如:Php 从用户输入查找数组中最近的值,php,csv,Php,Csv,我有一个GDP数据的CSV,包括名义和购买力平价。结构为国家名义购买力平价 例如: Islamic Republic of Afghanistan,560.673,998.466 Albania,"3,616.10","7,381.00" Algeria,"4,477.80","7,103.61" 用户输入名义GDP值。我想弄清楚的是,如何使用该值在由CSV文件构建的数组中找到最接近的名义GDP值。一旦我找到了名义价值,我想打印国家和购买力平价的价值 我已经有很长一段时间没有编写任何脚本了,所
Islamic Republic of Afghanistan,560.673,998.466
Albania,"3,616.10","7,381.00"
Algeria,"4,477.80","7,103.61"
用户输入名义GDP值。我想弄清楚的是,如何使用该值在由CSV文件构建的数组中找到最接近的名义GDP值。一旦我找到了名义价值,我想打印国家和购买力平价的价值
我已经有很长一段时间没有编写任何脚本了,所以我不知道该怎么做。/$input\u gdp是由用户输入的
// $input_gdp is entered by user
// $my_data is an array from the csv
$closest = -1;
$closest_diff = false;
foreach($my_data as $key=>$row) {
// $row[0] - Country
// $row[1] - Nominal
// $row[2] - PPP
if($closest_diff === false) {
$closest = $key;
$closest_diff = abs($row[1] - $input_gdp);
} else {
$current_diff = abs($row[1] - $input_gdp);
if($current_diff < $closest_diff) {
$closest = $key;
$closest_diff = $current_diff;
}
}
}
if($closest > -1) {
echo 'The closest is ' . $my_data[$closest][0] . ' with a PPP of ' . $my_data[$closest][2] . '.';
} else {
echo 'None were found.';
}
//$my_数据是csv中的一个数组
$closest=-1;
$closest_diff=false;
foreach($key=>$row形式的my_数据){
//$row[0]-国家/地区
//$row[1]-标称值
//$row[2]-购买力平价
如果($最近的_diff==假){
$closest=$key;
$closest_diff=abs($row[1]-$input_gdp);
}否则{
$current_diff=abs($row[1]-$input_gdp);
if($current_diff<$closest_diff){
$closest=$key;
$closest_diff=$current_diff;
}
}
}
如果($closest>-1){
回显“最近的是”。$my_数据[$closest][0]”,购买力平价为“$my_数据[$closest][2]”;
}否则{
echo“没有找到任何人”;
}