Ich verwende den folgenden Code, um den Unterschied von zwei Arrays zu erhalten. Aber wie es jetzt scheint, entfernt es zu viele Elemente oder ich mache etwas falsch.array_diff() entfernt zu viele Elemente
Ich erwarte die Ausgabe array(333, 111)
, weil das Element 111
zweimal im ersten Array und nur einmal in der zweiten Zeile angezeigt wird. Also 1x 111
sollte in der Ausgabe sein. Aber im Moment fehlt 111
vollständig in der Ausgabe.
Mache ich etwas falsch oder was soll ich tun, damit diese Funktion so funktioniert, wie ich will?
<?php
$Inventory1 = "111,222,333,111";
$SplitInventory1 = explode(",",$Inventory1);
$Invoice = "111,222";
$SplitInvoice = explode(",",$Invoice);
$SplitResult1 = array_diff($SplitInventory1, $SplitInvoice);
echo $JointInventory1 = implode(",",$SplitResult1);
?>
'array_diff()' (Gleiches für die ähnlichen Funktionen) nicht die Menge der gleichen Elemente berücksichtigen. Also, wenn es jetzt 1x111 oder 10x111 im Array gibt, ist es egal, es wird nur einmal in der Ausgabe haben, oder nicht. Also für was Sie möchten, dass Sie Ihre eigene Funktion schreiben wollen, indem Sie eine einfache foreach-Schleife verwenden, um jedes Element von einem Array in dem anderen zu lösen. – Rizier123
* "' array_diff' gibt die Werte in array1 zurück, die in keinem der anderen Arrays vorhanden sind "* -' 111' existiert im anderen Array, warum sollte es zurückgegeben werden? – deceze