PHP Inhalt eines Arrays von einem Anderen abziehen

s0nny

Ensign
Registriert
März 2012
Beiträge
187
Hi,
ich habe 2 Arrays mit Rechnernamen.
Ich möchte beide Arrays vergleichen und wenn ein Name in beiden Arrays vorkommt, diesen im ersten Array löschen.
PHP:
$Array1 = array("rechner1", "rechner2", "rechner5", "rechner7", "rechner9");
$Array2 = array("rechner2", "rechner3", "rechner4", "rechner6", "rechner9", "rechner14");

Für $Array1 soll soll am Ende etwa rauskommen: ($array2 bleibt unverändert)
Code:
Array
(
    [0] => 1
    [1] => 5
    [2] => 7
    [3] => 9
)

Mein Code:
PHP:
$counter = 0;
$anzahl = 500; //wird vorher bereits ermittelt

while ( $counter < $anzahl ) {
	$counter++;
	if ( in_array($pc2[$counter]['hostname'], $pc) ) {
		unset($pc[$counter]['hostname']);
	}
}

Ich blick langsam gar nichts mehr :freaky:
Was mach ich falsch? Ist das der komplett falsche Ansatz?

Grüße
 
Nee glaub nich.
In Array1 stehen ca 150 Rechner.
In Array2 stehen ca 600 Rechner.
Ich will aus Array1 die löschen die in Array2 sind, es sind aber in beiden Arrays noch weitere Rechner die im jeweiligen anderen Array nicht sind.
 
Code:
$array = array_diff( array_intersect( $array1, $array2 ), $array1 );
Erst die Schnittmenge aller Arrays ermitteln und dann alle gefundenen Einträge dieser mit dem ersten Resultat vergleichen. Falls wirklich nur aus array1 entfernt werden soll, müsstest du halt kurz eine Schleife drüber laufen lassen und die Werte aus der Schnittmenge entfernen.
 

Ähnliche Themen

V
Antworten
6
Aufrufe
3.455
VirusDeluXe
V
Zurück
Oben