Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem beim vergleichen von 2 Arrays

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem beim vergleichen von 2 Arrays

    Hallo ich hab ein Problem mit dem Vergleichen von 2 Arrays. print_r gibt beide Arrays so aus:

    rows1

    Array ( [0] => Array ( [COLUMN_NAME] => EMPLOYEE_ID ) [1] => Array ( [COLUMN_NAME] => FIRST_NAME ) [2] => Array ( [COLUMN_NAME] => LAST_NAME ) [3] => Array ( [COLUMN_NAME] => EMAIL ) [4] => Array ( [COLUMN_NAME] => PHONE_NUMBER ) [5] => Array ( [COLUMN_NAME] => HIRE_DATE ) [6] => Array ( [COLUMN_NAME] => JOB_ID ) [7] => Array ( [COLUMN_NAME] => SALARY ) [8] => Array ( [COLUMN_NAME] => COMMISSION_PCT ) [9] => Array ( [COLUMN_NAME] => MANAGER_ID ) [10] => Array ( [COLUMN_NAME] => DEPARTMENT_ID ) )

    rows2

    Array ( [0] => Array ( [COLUMN_NAME] => EMPLOYEE_ID ) [1] => Array ( [COLUMN_NAME] => START_DATE ) [2] => Array ( [COLUMN_NAME] => END_DATE ) [3] => Array ( [COLUMN_NAME] => JOB_ID ) [4] => Array ( [COLUMN_NAME] => DEPARTMENT_ID ) )

    Ich möchte nach den doppelten Einträgen in diesen beiden Arrays suchen welche EMPLOYEE_ID und JOB_ID sein müssten laut diesem Beispiel ich versuche das mit einem Intersect folgendermaßen:

    PHP-Code:
    $result array_intersect ($rows1$rows2); 
    Das ergebniss bei print_r für $result ist jedoch:

    Array ( [0] => Array ( [COLUMN_NAME] => EMPLOYEE_ID ) [1] => Array ( [COLUMN_NAME] => FIRST_NAME ) [2] => Array ( [COLUMN_NAME] => LAST_NAME ) [3] => Array ( [COLUMN_NAME] => EMAIL ) [4] => Array ( [COLUMN_NAME] => PHONE_NUMBER ) [5] => Array ( [COLUMN_NAME] => HIRE_DATE ) [6] => Array ( [COLUMN_NAME] => JOB_ID ) [7] => Array ( [COLUMN_NAME] => SALARY ) [8] => Array ( [COLUMN_NAME] => COMMISSION_PCT ) [9] => Array ( [COLUMN_NAME] => MANAGER_ID ) [10] => Array ( [COLUMN_NAME] => DEPARTMENT_ID ) )

    Was läuft hierbei falsch wie würde ich die beiden gemeinsamen Einträge ermitteln?

    Danke im Voraus

  • #2
    Auszug aus PHP-Manual:
    Anmerkung: Zwei Elemente werden nur dann als gleich angesehen, wenn (string) $elem1 === (string) $elem2. In Worten: Wenn die String-Repräsentation die gleiche ist.
    Also kann das ganze nicht funktionieren, da die Werte deiner Arrays wiederum Arrays sind.
    Also musst du das ganze zu Fuß erledigen:
    Code:
    $ret = array();
    
    foreach($a1 as $val1)
      foreach($a2 as $val2)
        if($val1["COLUMN_NAME"] == $val2["COLUMN_NAME"])
          $ret[] = array("COLUMN_NAME" => $val1["COLUMN_NAME"]);

    Kommentar

    Lädt...
    X