2013-06-27 3 views
0

Existe-t-il un moyen de joindre deux tableaux basés sur une même valeur dans une clé? Par exemple, dans MySQL, vous pouvez quitter deux tables lorsque deux champs ont la même valeur.PHP Correspond à deux tableaux sur la valeur de la clé (comme la jointure mysql)

Le premier tableau appelé «phoneArr» est un avec un ID_personne et un numéro de téléphone Le deuxième tableau appelé «clientDate» est un tableau avec un ID_personnel et une date de rendez-vous.

Voici les tableaux:

$phoneArr = array(); 

$phoneArr[0]['person_id'] = "123456"; 
$phoneArr[0]['phone'] = "555-2222"; 

$phoneArr[1]['person_id'] = "7654321"; 
$phoneArr[1]['phone'] = "555-1111"; 


$clientDate = array(); 
$clientDate[0]['person_id'] = "123456"; 
$clientDate[0]['date_time'] = "01-07-13 13:00"; 

$clientDate[1]['person_id'] = "7654321"; 
$clientDate[1]['date_time'] = "01-07-13 10:30"; 

Maintenant, si l'ID de personne clientDate existera toujours dans le phoneArr, mais pas l'autre wat autour. Les personnes du phoneArr n'existent pas toujours dans le clientDate. Ce que je veux est d'obtenir une correspondance de ces tableaux où je serai parti avec un nouveau tableau avec l'information des deux tableaux, mais seulement il y a une correspondance sur le 'person_id'.

Est-ce faisable sans MySQL?

Répondre

1

Si vous allez rechercher des données par une valeur clé, et cette valeur clé est unique sur la table, vous pouvez envisager d'utiliser que la clé du tableau, de sorte que votre phoneArr de $ sera mis en place comme:

$phoneArr["123456"]['phone'] = "555-2222"; 
$phoneArr["7654321"]['phone'] = "555-1111"; 

Faites la même chose avec l'autre tableau

Ensuite, vous pouvez:

foreach ($phoneArr AS $id=>$record) { 
    if (array_key_exists($id,$clientDate)) { 
     // the client id is $id, $record has their phone #, and $clientDate[$id] has their date/time 
     // do something with it here - either process it (preferable) or put the data in another array. 
    } 
} 
+0

Grand Je vais examiner cela. J'ai besoin de faire des changements ailleurs, car je ne tape pas ces tableaux dans mon script, mais je les crée aussi avec une boucle for. – BonifatiusK

Questions connexes