Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.php > #8983

Re: comparing arrays

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>

Show all headers | View raw


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


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