[PHP] array_diff_accoc geen result

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Disksoft
  • Registratie: September 2003
  • Laatst online: 09-09 23:17
Hallo,

Ik ben bezig met een script om twee databases te vergelijken op verschillen, echter loop ik nu tegen een probleem aan. Het gaat om onderstaande code (het stuk code komt uit een Class):

PHP:
1
2
3
4
5
6
<?php
        print_r($this->_table_one_types); // Bevat keys, zie hier onder
        print_r($this->_table_two_types); // Bevat keys, zie hier onder
        print_r(array_diff_assoc($this->table_one_types, $this->_table_two_types)); // Geen result
        print_r(array_diff_assoc($this->_table_two_types, $this->table_one_types)); // Geen result
?>


Inhoud Arrays:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$this->_table_one_types: 
Array
(
    [id] => int(6) unsigned
    [text] => longtext
    [add] => varchar(255)
)

$this->_table_two_types: 
Array
(
    [id] => int(6) unsigned
    [user_id] => int(11)
    [text] => text
)


Nu verwacht ik bij de eerste vergelijking dat ik de keys 'text' en 'add' terug krijg, omdat 'add' niet bestaat in de andere array en omdat 'text' verschillend is.

Bij de tweede vergelijking verwacht ik de keys 'text' en 'user_id' terug, 'text' omdat deze verschillend is en 'user_id' omdat deze niet bestaat in de andere array,

Echter krijg ik geen result terug, ik heb ook al de andere array_diff varianten geprobeerd maar ook dan krijg ik geen resultaat. Wat doe ik verkeerd?

Beste antwoord (via Disksoft op 21-08-2016 15:46)


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
https://3v4l.org/9hPlW

De output van array_diff_assoc() is hier niet leeg en precies zoals jij verwacht? Ik heb er ook array_diff_key() calls bij gedaan als je extra keys wilt herkennen etc. :)

{signature}

Alle reacties


Acties:
  • Beste antwoord
  • 0 Henk 'm!

  • Voutloos
  • Registratie: Januari 2002
  • Niet online
https://3v4l.org/9hPlW

De output van array_diff_assoc() is hier niet leeg en precies zoals jij verwacht? Ik heb er ook array_diff_key() calls bij gedaan als je extra keys wilt herkennen etc. :)

{signature}


Acties:
  • 0 Henk 'm!

  • Disksoft
  • Registratie: September 2003
  • Laatst online: 09-09 23:17
Probleem gevonden.

code:
1
2
        print_r(array_diff_assoc($this->table_one_types, $this->_table_two_types)); // Geen result
        print_r(array_diff_assoc($this->_table_two_types, $this->table_one_types)); // Geen result


moet zijn:

code:
1
2
        print_r(array_diff_assoc($this->_table_one_types, $this->_table_two_types));
        print_r(array_diff_assoc($this->_table_two_types, $this->_table_one_types));


Ik had: $this->table_one_types i.p.v. $this->_table_one_types (_ te weinig).

@Voutloos Bedank!

Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
Als je tijdens development
PHP:
1
error_reporting(-1);
gebruikt dan had je dit heel snel kunnen vinden, voor de volgende keer dus :)

Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19:53

Ventieldopje

I'm not your pal, mate!

Cartman! schreef op zondag 21 augustus 2016 @ 15:43:
Als je tijdens development
PHP:
1
error_reporting(-1);
gebruikt dan had je dit heel snel kunnen vinden, voor de volgende keer dus :)
E_ALL dus (sinds 5.4) ;)

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • Cartman!
  • Registratie: April 2000
  • Niet online
-1 is korter en tevens neemt het eventueel toekomstige levels meteen mee, wat is je punt?

Acties:
  • 0 Henk 'm!

  • PatrickH89
  • Registratie: November 2009
  • Laatst online: 20:52
Nu mag ik aannemen dat ze niet nog een keer een level niet in E_ALL includen natuurlijk :+

Acties:
  • 0 Henk 'm!

  • Ventieldopje
  • Registratie: December 2005
  • Laatst online: 19:53

Ventieldopje

I'm not your pal, mate!

PatrickH89 schreef op zondag 21 augustus 2016 @ 18:55:
Nu mag ik aannemen dat ze niet nog een keer een level niet in E_ALL includen natuurlijk :+
Dat hebben ze inderdaad met 5.4 recht gezet die tevens al lang EOL is. Zekerheid heb je met -1 denk ik ook niet en E_ALL geeft meteen aan wat het doet.

Maar goed, sorry ;) Back on-topic!

www.maartendeboer.net
1D X | 5Ds | Zeiss Milvus 25, 50, 85 f/1.4 | Zeiss Otus 55 f/1.4 | Canon 200 f/1.8 | Canon 200 f/2 | Canon 300 f/2.8


Acties:
  • 0 Henk 'm!

  • igmar
  • Registratie: April 2000
  • Laatst online: 10-10 21:59

igmar

ISO20022

Cartman! schreef op zondag 21 augustus 2016 @ 18:38:
[...]

-1 is korter en tevens neemt het eventueel toekomstige levels meteen mee, wat is je punt?
Omdat ik moet opzoeken wat -1 is. E_ALL is wat dat betreft veel duidelijker, en indien de waarde van je constante wijzigt blijft je code gewoon werken.
Pagina: 1