[PHP] Twee 2D arrays mergen tot een afhankelijk van waardes

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
Twee queries uit totaal verschillende bronnen, maar wel matchende keys. Dus twee arrays met daarin resultaten met associatieve arrays. Ik wil van die twee arrays een array maken, met arrays met matchende waardes van bepaalde keys in een regel, en de niet matchende waardes weg laten.

Zo zien de gegevens er ongeveer uit:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
ARRAY 1:

array(2) {
  [0]=>
  array(2) {
    ["nummer"]=>
    string(1) "1"
    ["CRM_nummer"]=>
    string(6) "114730"
  }
  [1]=>
  array(2) {
    ["nummer"]=>
    string(1) "3"
    ["CRM_nummer"]=>
    string(1) "1"
  }
}

ARRAY 2:

array(1) {
  [0]=>
  array(6) {
    ["nummer"]=>
    string(6) "114730"
    ["Bedrijfsnaam"]=>
    string(9) "Test"
    ["Kontaktpersoon"]=>
    string(24) "Jansen"
    ["Adres"]=>
    string(16) "Blaat 31 H"
    ["Woonplaats"]=>
    string(5) "FAKE"
    ["Land"]=>
    string(9) "Nederland"
  }
}


Dus van ARRAY 1 zou de key 'CRM_nummer' moeten matchen aan 'nummer' van ARRAY 2.

[ Voor 20% gewijzigd door BikkelZ op 16-01-2006 16:25 ]

iOS developer


Acties:
  • 0 Henk 'm!

  • BikkelZ
  • Registratie: Januari 2000
  • Laatst online: 21-02 08:50
PHP:
1
2
3
4
5
6
7
8
9
10
            for ($q=0; $q < count($ermdata); $q++)
            {
                for ($x = 0; $x < count($crmdata); $x++)
                {
                    if ($crmdata[$x][$crmtarget] == $ermdata[$q][$ermtarget])
                    {
                        $data[] = array_merge($ermdata[$q], $crmdata[$x]);
                    }
                }
            }


Efficienter dan dit krijg ik het niet. Maar het werkt iig.

iOS developer


Acties:
  • 0 Henk 'm!

  • Pete
  • Registratie: November 2005
  • Laatst online: 07-09 17:51
zou zoiets moeten worden

code:
1
2
3
4
if($arr1['CRM_nummer'] == $arr2['nummer']) {
    unset($arr2['nummer'];
    array_merge($arr1, $arr2);
}



edit: spuit11
2: ik heb het waarschijnlijk niet goed begrepen

[ Voor 28% gewijzigd door Pete op 16-01-2006 16:52 ]

petersmit.eu