vergleichen Sie zwei PHP-arrays durch Schlüssel
Was ist der Schnellste Weg, um zu vergleichen, ob die Schlüssel von zwei arrays sind gleich?
zB.
array1: array2:
'abc' => 46, 'abc' => 46,
'def' => 134, 'def' => 134,
'xyz' => 34, 'xyz' => 34,
in diesem Fall das Ergebnis soll WAHR sein (gleiche Schlüssel)
und:
array1: array2:
'abc' => 46, 'abc' => 46,
'def' => 134, 'def' => 134,
'qwe' => 34, 'xyz' => 34,
'xyz' => 34,
Ergebnis FALSE sein sollte (einige Tasten unterscheiden)
array_diff_key() gibt ein leeres array...
Vergleichen Sie das Ergebnis
sollte
das ist mehrdeutig, aus der Frage. Es hängt davon ab. Wenn die Werte der Schlüssel sind nicht wichtig, dann ja, beide arrays sollten true zurückgeben. Wenn die Werte nicht egal, dann false.
ja,
Macht es wirklich gibt ein leeres array zurück??? Ich habe versucht, Sie Beispiel und es gibt array der Größe 1. Ich denke, Sie verwendet ein anderes Beispiel selbst. @Yoshi vergessen Sie nicht, dass Sie haben, um es laufen beide Weg! (z.B.
array_diff_key
auf ein leeres array, und wenn dies true
wirst du wissen, dass beide arrays haben den gleichen Schlüssel.sollte
array('a'=>'b')
zurück true
im Vergleich zu array('a'=>'c')
?das ist mehrdeutig, aus der Frage. Es hängt davon ab. Wenn die Werte der Schlüssel sind nicht wichtig, dann ja, beide arrays sollten true zurückgeben. Wenn die Werte nicht egal, dann false.
ja,
true
- das bedeutet, Sie sind gleich. im Grunde möchte ich nur, um herauszufinden, ob die arrays haben die gleichen Schlüssel. @Yoshi: nicht sicher, ob ich verstehe, was u bedeuten. array_keys() gibt mir einen leeren array und ich weiß, dass meine arrays sind anders... Wenn ich Vergleiche, dass ein leeres array wäre nicht ich bekomme immer TRUE?Macht es wirklich gibt ein leeres array zurück??? Ich habe versucht, Sie Beispiel und es gibt array der Größe 1. Ich denke, Sie verwendet ein anderes Beispiel selbst. @Yoshi vergessen Sie nicht, dass Sie haben, um es laufen beide Weg! (z.B.
$a = array('a' => 'c'); $b = array('a' => 'c', 'b' => 'f');
wäre als gleich nach dir)InformationsquelleAutor Alex | 2011-06-06
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
array_diff_key
, das ist, was es ist. Als Sie sagte, es ein leeres array zurück, das ist, was er tun soll.Gegeben
array_diff_key($array1, $array2)
, es gibt ein leeres array zurück, wenn alle von array1 zurück, deren Schlüssel existieren in array2. Um sicherzustellen, dass die arrays gleich sind, werden Sie dann brauchen, um sicherzustellen, dass alle von array2 die Schlüssel existieren in Matrix1. Wenn entweder der Aufruf liefert ein nicht-leeres array, kennen Sie Ihre array-keys sind nicht gleich:InformationsquelleAutor meagar
Verwenden array_keys zu bekommen-array der Schlüssel und verwenden Sie dann array_diff.
ODER
Verwenden array_diff_key direkt.
InformationsquelleAutor Naveed
Wie wäre es mit === statt? Wissen Sie, die Betreiber für die Gleichstellung?
Es wird nicht funktionieren, wenn die Felder in einer anderen Reihenfolge
dann ist es nicht gut 😛
===
ist nicht mehr geeignet als==
für diesen Zweck.InformationsquelleAutor Berry Langerak