Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.php > #8983
| Message-ID | <5107815.Hu20eYApaJ@PointedEars.de> (permalink) |
|---|---|
| From | Thomas 'PointedEars' Lahn <PointedEars@web.de> |
| Organization | PointedEars Software (PES) |
| Date | 2013-04-07 15:37 +0200 |
| Subject | Re: comparing arrays |
| Newsgroups | comp.lang.php |
| References | <kjrlk6$8es$1@speranza.aioe.org> |
bill wrote: > I need to see if a patient has appointments with a > psychotherapist and a physician on the same day. > > I request the schedule of each therapist and each physician as > arrays of arrays: > time, patient_number, duration (note, the therapist/physician id > is not in the array) > They are non-associative arrays (numeric keys) > I might have 1..n physicians and 1..n therapists > I can generate arrays of physicians and arrays of therapists > > Option 1 is a nightmare of nested foreachs > > I am sure there must be an array function that will permit this > check. I am quite sure there isn't. > AFAIK, the _intersect functions require the same date in > all, when what I want is "any". > > my current thought is to create arrays of just pt_number, merge > the physician arrays, merge the therapist arrays, array_flip to > move the values to keys and then array_intersect. A merge will destroy the association between patient, date, and doctor. > But, before I try that I welcome any suggestions. You should probably do this in a relational database. But if you absolutely must do it in PHP, you can determine what the keys of your data are, and in which order you need them: the patient, the date, or the doctor. Then you can build from the records a “multi-dimensional array” (for lack of a better word) from which becomes apparent where there are schedule collisions. You can take advantage of the fact that PHP builds “multi- dimensional arrays” automatically if you add another index expression. For example, in a loop, $appointments[$patient_id][$date] = $doctor; would store the information that the patient with ID $patient_id has an appointment with $doctor on $date. Obviously it is very easy then to organize the data by different primary keys in different “multi-dimensional arrays” (which themselves may be elements of yet another array, to avoid extra variables). If an element of an array with an index already exists, there is the collision. HTH PointedEars -- Sometimes, what you learn is wrong. If those wrong ideas are close to the root of the knowledge tree you build on a particular subject, pruning the bad branches can sometimes cause the whole tree to collapse. -- Mike Duffy in cljs, <news:Xns9FB6521286DB8invalidcom@94.75.214.39>
Back to comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
comparing arrays bill <william@TechServSys.com> - 2013-04-07 07:34 -0400
Re: comparing arrays Jerry Stuckle <jstucklex@attglobal.net> - 2013-04-07 08:34 -0400
Re: comparing arrays bill <william@TechServSys.com> - 2013-04-07 10:00 -0400
Re: comparing arrays Frank Steinmetzger <frank.steinmetzger@stud.tu-ilmenau.de> - 2013-04-07 16:14 +0200
Re: comparing arrays Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-04-07 17:13 +0200
Re: comparing arrays bill <william@TechServSys.com> - 2013-04-07 11:34 -0400
Re: comparing arrays Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-04-07 21:33 +0200
Re: comparing arrays The Natural Philosopher <tnp@invalid.invalid> - 2013-04-07 16:01 +0100
Re: comparing arrays Frank Steinmetzger <frank.steinmetzger@stud.tu-ilmenau.de> - 2013-04-07 20:22 +0200
Re: comparing arrays Jerry Stuckle <jstucklex@attglobal.net> - 2013-04-07 14:18 -0400
Re: comparing arrays Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-04-07 15:37 +0200
Re: comparing arrays bill <william@TechServSys.com> - 2013-04-07 09:59 -0400
Re: comparing arrays Thomas 'PointedEars' Lahn <PointedEars@web.de> - 2013-04-07 17:14 +0200
Re: comparing arrays The Natural Philosopher <tnp@invalid.invalid> - 2013-04-07 15:59 +0100
csiph-web