function match_desc($arr,$min,$max) {
// first filter an array to match $min and $max
$filtered = array_filter($arr, function($v) use ($min,$max) {
list($desc,$miny,$maxy) = $v;
return $min == $miny && $max == $maxy;
});
// return only descriptions
return array_map(function($v) { return $v[0]; },$filtered);
}
match_desc(array(
array("Any", 0, 255),
array("New", 0, 1),
array("5 - 10yrs", 5, 10),
array("10 - 20yrs", 10, 20)
), 0,1);
将返回array(0 => "New");
此功能考虑您可能有
$years_array = array(
array("Desc1", 0, 255),
array("Desc2", 0, 255),
);
这么一个数组,喂养0和255为最低和最高将return array(0 => "Desc1", 1 => "Desc2");
如果功能不匹配反对通过最小值和最大值,它将返回一个空数组,并且很容易用empty
进行检查。
你的问题很含糊......你是什么意思?你怎么能得到“10 - 20年”? – 2012-08-17 06:25:26
@MihaiIorga,是的,''10 - 20yrs''假设我有10个'$ min'和20个'$ max'。 – 2012-08-17 06:27:46