PHP Multidimensional Arrays - Entfernen Sie Duplikate

Wenn mir hier jemand helfen könnte, wäre ich auf ewig dankbar, da ich jetzt ungefähr 2 volle Tage damit verbracht habe, dies zum Laufen zu bringen. Ich möchte zwei mehrdimensionale Arrays nehmen und sie dann vergleichenLöschen doppelte Datensätze.

Das Szenario lautet: Die Werte in Array2 wurden bereits einem Benutzerprofil zugewiesen. Die Werte in Array1 sind ALLE verfügbaren Werte, aus denen der Benutzer auswählen kann. Ich möchte die beiden vergleichen, damit nur die nicht bereits zugewiesenen als Option angegeben werden (links im Array) ...

$array1 = array(
  [0] => array( [id] => 3 [name] => Eye Colour )
  [1] => array( [id] => 1 [name] => Hair Colour )
  [2] => array( [id] => 5 [name] => Hair Length )
  [3] => array( [id] => 4 [name] => Height )
); 

$array2 = array(
  [0] => array( [attribute_id] => 3 [name] => Eye Colour [active] => 1 )
  [1] => array( [attribute_id] => 5 [name] => Hair Length [active] => 1 ) )
);

Die Funktion array_diff () von PHP funktioniert nicht mit mehrdimensionalen Arrays, und ich hatte eine gute Suche, kann aber scheinbar nichts finden, was für mich funktioniert!

Das Ergebnis basierend auf den beiden obigen Arrays sollte lauten:

$array1 = array(
  [0] => array( [id] => 1 [name] => Hair Colour )
  [1] => array( [id] => 4 [name] => Height )
);

Das [aktive] Feld ist irrelevant, daher brauche ich es nur, um die ID- und die Namensfelder zu vergleichen. Mir ist klar, dass der Name der beiden ID-Felder unterschiedlich ist, aber es wäre mühsam, sie zu ändern, da es sich um Datenbankspaltennamen handelt.

Es muss das Array vollständig entfernen, nicht nur die Werte. Ich hatte Probleme mit früheren Versuchen, bei denen array () dort belassen wurde, und dies führt dann zu Problemen, wenn ich das Array durchlaufe und die Felder erzeuge, aus denen der Benutzer auswählen kann.

Bitte helfen Sie. Ich werde dir viele Biere kaufen! :)

Danke, Steve

Antworten auf die Frage(1)

Ihre Antwort auf die Frage