This post almost answered this question for me, but I have a specific need and didn't find what I sought there. This lies right outside my experience; couldn't quite wrap my head around it, so all I really need is a point in the right direction.
Let's say I have an array as follows:
array(5) {
[0]=> "2013-02-18 05:14:54"
[1]=> "2013-02-12 01:44:03"
[2]=> "2013-02-05 16:25:07"
[3]=> "2013-01-29 02:00:15"
[4]=> "2013-01-27 18:33:45"
}
I would like to have a way to provide a date ("2013-02-04 14:11:16", for instance), and have a function determine the closest match to this in the array (which would be "2013-02-05 16:25:07" in this case).
I'd appreciate any tips. Thanks! :)
I may not have the best naming conventions, but here goes.
I calculate the intervals between the array of dates and the given date. I then do a sort, to find the "smallest" difference.
Suppose your array is bigger and that you have dates over the period
2009-10-01
to2019-10-01
. Lets now compare two approach: a.looping-array approach
vs b.sorting-indexing-array approach
.Printing the results gives (http://phptester.net/)
Which is a huge time elapsed gain. We divided by ten the waiting time
Just try this:
Your first element will the the closest match date.
Note: Please test it before you use.
If I understand your question perfectly then this will solve your problem.
Tested Code