Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从用户输入查找数组中最近的值_Php_Csv - Fatal编程技术网

Php 从用户输入查找数组中最近的值

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值。一旦我找到了名义价值,我想打印国家和购买力平价的价值 我已经有很长一段时间没有编写任何脚本了,所

我有一个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值。一旦我找到了名义价值,我想打印国家和购买力平价的价值

我已经有很长一段时间没有编写任何脚本了,所以我不知道该怎么做。

/$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“没有找到任何人”; }