Ich habe ein mehrdimensionales Array. Hier ist ein Beispiel mit nur zwei Aufzeichnungen, aber es könnte viel mehr sein:PHP - sicherstellen, dass bestimmte Werte in mehrdimensionalen Array sind einzigartig
array(2) {
[0]=> array(7)
{
[0]=> string(0) ""
[1]=> string(0) ""
[2]=> string(7) "4646468"
[3]=> string(1) "1"
[4]=> string(1) "2"
[5]=> string(10) "2016-08-18"
[6]=> string(0) ""
}
[1]=> array(7)
{
[0]=> string(0) ""
[1]=> string(0) ""
[2]=> string(7) "4646469"
[3]=> string(1) "1"
[4]=> string(1) "2"
[5]=> string(10) "2016-08-18"
[6]=> string(0) ""
}
}
ich dafür sorgen müssen, dass die Werte für die Tasten 0, 1 und 2 von jedem inneren Datensatz eindeutig sind. Wenn dies nicht der Fall ist, möchte ich diesen Datensatz (wie in diesem Array-Element mit seinen 7 Werten) aus dem Array entfernen (leere Strings sollten jedoch ignoriert werden). Ich habe this answer to a similar question gefunden, die erfolgreich Duplikate für mich ausgibt, aber ich möchte sie auch aus dem Haupt-Array entfernen. Das Problem ist, dass ich diesen Code überhaupt nicht verstehe. Ich glaube nicht, Rückrufe verstehen und daher nicht wissen, wie Sie diesen Code zu ändern, um zu erreichen, was ich brauche:
$unique = array();
foreach($checked as $v) {
$key = $v[0] . $v[1] . $v[2];
if (!isset($unique[$key]))
$unique[$key] = 0;
else
$unique[$key]++;
}
print_r(array_filter($unique));
Dank dafür - ich habe beginnen den ursprünglichen Code auf diese Weise verwenden und es funktioniert, außer, aus irgendeinem Grund, es funktioniert nicht, wenn mehr als eines der drei Felder wurde ausgefüllt. Mit anderen Worten, wenn _only_ key [0] Daten enthält, die mit einem anderen Datensatz übereinstimmen, wird dieser gefunden. Wenn jedoch die Tasten 1 und 2 ebenfalls Daten enthalten, funktioniert der Code nicht. – daninthemix
Sind die Werte in den Schlüsseln enthalten, die von Benutzereingaben geliefert werden, und sind die Eingaben bereinigt? Versuchen Sie dies für die Schlüsselkombination. $ key = trimmen ($ v [0]). trimmen ($ v [1]). trimmen ([$ v [1]) –
Hilft nicht, ich habe Angst. Es wird eine Übereinstimmung über jedes der drei Felder finden, aber nur dann, wenn dieses eine übereinstimmende Feld das einzige vorhandene Feld der drei Felder ist. – daninthemix