2016-08-17 4 views
4

Mein Array:Array Nur basierend auf dem ersten Wert?

$arr = [['abc', 'a'],['xyz', 'f'],['abc', 'x']]; 

Ich brauche alle doppelten ersten Werte zu entfernen, z. B. gibt es zwei abc Werte, oben, array_unique wird nicht funktionieren, als der zweite Wert unterscheidet:

$arr = array_unique($arr, SORT_REGULAR); 

Gibt es eine Möglichkeit nur eindeutige Werte auf dem ersten Wert auf Basis zu erhalten. Ich kann die obige Struktur nicht ändern.

Die gewünschte Ausgabe ist:

$arr = [['abc', 'a'],['xyz', 'f']]; 
+0

Was ist die gewünschte Ausgabe? –

+0

Aktualisierte Frage mit der gewünschten Ausgabe. – panthro

+0

* Ich muss alle doppelten ersten Werte * entfernen. Aber die gewünschte Ausgabe entfernt die letzte. –

Antwort

5

array_combine() & array_column() helfen kann. Es würde jedoch die Reihenfolge verschachtelter Arrays ändern und nur den letzten Wert für Duplikate enthalten.

$arr = [['abc', 'a'],['xyz', 'f'],['abc', 'x']]; 
$temp = array_combine(array_column($arr, 0), $arr); 

array_column ist für ältere Versionen nicht verfügbar. (Erhältlich (PHP 5> = 5.5.0, PHP 7))

Output

array(2) { 
    ["abc"]=> 
    array(2) { 
    [0]=> 
    string(3) "abc" 
    [1]=> 
    string(1) "x" 
    } 
    ["xyz"]=> 
    array(2) { 
    [0]=> 
    string(3) "xyz" 
    [1]=> 
    string(1) "f" 
    } 
} 

array_column wird ein Array mit allen Werten von Subarrays mit 0 Index Rückkehr .

array_combine weist die Unterarrays den von array_column zurückgegebenen Werten zu.

Da derselbe Schlüssel nicht zweimal vorhanden sein kann, überschreibt er die vorherigen Werte mit demselben Schlüssel (für 0) mit neueren Werten. Daher wird das neue Array nur den letzten (letzten) Wert enthalten.

+0

Das ist großartig, könnten Sie ein bisschen mehr erklären, was array_column und array_combine tun? – panthro

+0

@panthro, Kurze Beschreibung dessen, was es macht. Allso fügte die Links zur Dokumentation hinzu. Ich hoffe es würde helfen. –

+0

Das war sehr nützlich, leider ändert es die Struktur des Arrays, um es wieder in die gleiche Struktur nach dem Mähdrescher zu bekommen? z.B. Entfernen Sie die Schlüsselnamen – panthro

Verwandte Themen