PHP相当于数组上的Excel vlookup(PHP equivalent of Excel vlookup on array)
在php中查找内置函数后,我找不到与Excel的vlookup函数类似的函数。
我需要一个函数,它接受一个数组和一个查找值并返回所需的信息。 例如:
<?php $baseCalculationPrice = [ 0 => 50, //for values <=500 but >0 500 => 18, //for values <=3000 but >500 3000 => 15, //for values <=5000 but >3000 5000 => 14, //for values >5000 ]; //Examples $numPages = 499; echo vlookup($numPages,$baseCalculationPrice); //should output 50 $numPages = 500; echo vlookup($numPages,$baseCalculationPrice); //should output 50 $numPages = 501; echo vlookup($numPages,$baseCalculationPrice); //should output 18 $numPages = 3000; echo vlookup($numPages,$baseCalculationPrice); //should output 18 $numPages = 3001; echo vlookup($numPages,$baseCalculationPrice); //should output 15 $numPages = 5000; echo vlookup($numPages,$baseCalculationPrice); //should output 15 $numPages = 5001; echo vlookup($numPages,$baseCalculationPrice); //should output 14 function vlookup($value,$array){ //magic code return ....; } ?>我对这种功能背后的逻辑感到困惑,所以任何帮助都会很棒 - 谢谢。
After looking for a built in function in php I couldn't find a similar function to Excel's vlookup function.
I need a function that takes in an array and a lookup value and return the required info. So for example:
<?php $baseCalculationPrice = [ 0 => 50, //for values <=500 but >0 500 => 18, //for values <=3000 but >500 3000 => 15, //for values <=5000 but >3000 5000 => 14, //for values >5000 ]; //Examples $numPages = 499; echo vlookup($numPages,$baseCalculationPrice); //should output 50 $numPages = 500; echo vlookup($numPages,$baseCalculationPrice); //should output 50 $numPages = 501; echo vlookup($numPages,$baseCalculationPrice); //should output 18 $numPages = 3000; echo vlookup($numPages,$baseCalculationPrice); //should output 18 $numPages = 3001; echo vlookup($numPages,$baseCalculationPrice); //should output 15 $numPages = 5000; echo vlookup($numPages,$baseCalculationPrice); //should output 15 $numPages = 5001; echo vlookup($numPages,$baseCalculationPrice); //should output 14 function vlookup($value,$array){ //magic code return ....; } ?>I'm stuck even with the logic behind such a function, so any help would be great - thanks.
最满意答案
function vlookup($lookupValue,$array){ $result; //test each set against the $lookupValue variable, //and set/reset the $result value foreach($array as $key => $value) { if($lookupValue > $key) { $result = $value; } } return $result; } function vlookup($lookupValue,$array){ $result; //test each set against the $lookupValue variable, //and set/reset the $result value foreach($array as $key => $value) { if($lookupValue > $key) { $result = $value; } } return $result; }更多推荐
发布评论