php 中数组搜索的计算
computation on array-search in php
我有一个像这样的多维数组:
array ( 'JD'=>2457002.50, 67.618536),
array ( 'JD'=>2457003.50, 67.619705),
array ( 'JD'=>2457004.50, 67.620938)....
我有一个值说:
$MyJD = 2457003.9553;
我想在数组中找到值,如果没有,匹配最接近问题数组的数字,return 下一个索引(我假设是 [1])
我想做一个 array_search,但找不到确切的数字,我想要最接近 $MyValue 的数字?
bucle 把新数组放在不同的键之间
通过这种方式,您将获得按差异排序的数组
在每次迭代中
$myarray[myvalue - yourvalueinbucle] if -1 this key then ×-1 and how value your enter iterator of bucle, then your value for this key = your line multiarrayvalue in for each iterator
这不会 return 索引,但 return 正确的数组:
array_multisort(array_map(function($v) use($MyJD) {
return abs($v['JD'] - $MyJD);
}, $array), $array);
$result = reset($array);
- 计算每个
JD
值与$MyJD
的差值
- 按差值排序(排序原来的),取最低的(第一个)
或者,您可以使用差异作为键进行组合,然后对键进行排序:
$array = array_combine(array_map(function($v) use($MyJD) {
return abs($v['JD'] - $MyJD);
}, $array), $array);
ksort($array);
$result = reset($array);
也许有人会 post 一个好的 array_reduce 答案。
我有一个像这样的多维数组:
array ( 'JD'=>2457002.50, 67.618536),
array ( 'JD'=>2457003.50, 67.619705),
array ( 'JD'=>2457004.50, 67.620938)....
我有一个值说:
$MyJD = 2457003.9553;
我想在数组中找到值,如果没有,匹配最接近问题数组的数字,return 下一个索引(我假设是 [1])
我想做一个 array_search,但找不到确切的数字,我想要最接近 $MyValue 的数字?
bucle 把新数组放在不同的键之间 通过这种方式,您将获得按差异排序的数组 在每次迭代中 $myarray[myvalue - yourvalueinbucle] if -1 this key then ×-1 and how value your enter iterator of bucle, then your value for this key = your line multiarrayvalue in for each iterator
这不会 return 索引,但 return 正确的数组:
array_multisort(array_map(function($v) use($MyJD) {
return abs($v['JD'] - $MyJD);
}, $array), $array);
$result = reset($array);
- 计算每个
JD
值与$MyJD
的差值
- 按差值排序(排序原来的),取最低的(第一个)
或者,您可以使用差异作为键进行组合,然后对键进行排序:
$array = array_combine(array_map(function($v) use($MyJD) {
return abs($v['JD'] - $MyJD);
}, $array), $array);
ksort($array);
$result = reset($array);
也许有人会 post 一个好的 array_reduce 答案。