急求!!!!php数组判断区间优化感激不尽

//根据数字算城市:
$a=[
'深圳'=>['min'=>2,'max'=>10],
'四川'=>['min'=>8,'max'=>30],
'湖北'=>['min'=>32,'max'=>60],
'广东'=>['min'=>50,'max'=>58],
];
$num=9;
$data=[];
foreach($aas$key=>$value){
if($num>=$value['min']&&$num<=$value['max']){
$data[]=$key;
}
}
print_r($data);
/*Array
(
[0]=>深圳
[1]=>四川
)*/
//请问如何优化?或者源数据如何改造才能优化到最佳?
白衣非少年
浏览 311回答 2
2回答

茅侃侃

如果数据量非常大,可以考虑类似mysql的索引实现,使用树状索引。如果数据量比较小,可以提前把num集合都算出来,使用直接取就ok了。

九州编程

都O(n)了,还怎么优化只能改源数据结构啦,直接用数字索引数组放地区值就行了。就不用循环,直取。例:$a=[9=>['深圳','四川'],11=>['四川'],56=>['湖北','广东'],];
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript