2016-03-27 11 views
0

Ich muss Wert in einem mehrdimensionalen Array finden, Größe des Arrays ist nicht definiert. suppose Benutzer Lassen Sie treten 1601 wird Ergebnis 011. und wenn 1605 sein, wird das Ergebnis 015 bis Array nach seinemWert in mehrdimensionalem Array finden

array (size=6) 
     0 => 
     array (size=2) 
      0 => string 'Zipcode' (length=7) 
      1 => string 'Territory Code' (length=14) 
     1 => 
     array (size=2) 
      0 => string '1601' (length=4) 
      1 => string '011' (length=3) 
     2 => 
     array (size=2) 
      0 => string '1602' (length=4) 
      1 => string '012' (length=3) 
     3 => 
     array (size=2) 
      0 => string '1603' (length=4) 
      1 => string '013' (length=3) 
     4 => 
     array (size=2) 
      0 => string '1604' (length=4) 
      1 => string '014' (length=3) 
     5 => 
     array (size=2) 
      0 => string '1605' (length=4) 
      1 => string '015' (length=3) 
+1

antwortete ich, aber was mich ist, dass alle Index 1 Werte sind 3 Zeichen aber zeigen Länge 1? – AbraCadaver

+0

@AbraCadaver Das müssen einige gesunde Zeichen sein, die nur 1/3 eines Zeichens gewichten. – Rizier123

+0

Ich habe eine Antwort in Ihrer Frage. Aber ich weiß nicht, ob das richtig ist, basierend auf Ihrer gegebenen Frage. Es gibt den 2. Index zurück. – aldrin27

Antwort

3

Wenn Zipcode einzigartig ist, dann können Sie tun:

echo array_column($array, 1, 0)[1601]; 

Oder wenn Territory Code ist einzigartig:

echo array_search(1601, array_column($array, 0, 1), true); 

array_column() extrahiert eine Spalte aus der multidimensionalen Array zu erstellen ein eindimensionales Array.

Array array_column (array $ input, mixed $ column_key [, mixed $ index_key = null])

Der zweite Parameter $column_key definieren, welche Spalte Sie aus dem mehrdimensionalen Array als Werte in die erhalten möchten eindimensionales Array. Und der dritte Parameter $index_key definiert, welche Spalte Sie als Schlüssel für das eindimensionale Array verwenden möchten, das Sie zurück erhalten. Wenn $index_key nicht definiert ist, wird das Array numerisch nummeriert.

erste Codebeispiel

Das erste Beispiel extrahiert ein Array wie:

array(1601 => '011', 1602 => '012') 

den Wert Mit 1601 als Schlüssel Sie die gewünschte Ausgabe 011 erhalten.

zweiten Codebeispiel

Das zweite Beispiel verwendet eine Anordnung wie:

array('011' => 1601, '012' => 1602) 

und sucht nach 1601 mit array_search() den Schlüssel 011 zu erhalten, die die gewünschte Ausgabe ist.

Sehen Sie diese zwei Beispiele für das, was die zweite und dritte Parameter tun:

print_r(array_column($array, 1, 0)); 
print_r(array_column($array, 0, 1)); 
+0

Sie können keine Antwort schreiben, ohne 'array_column()' irgendwo zu verwenden, nicht wahr :)? – Rizier123

+1

Das sind Edelsteine ​​Kumpel! :-) – AbraCadaver

+0

Es funktioniert für mich. Vielen Dank @AbraCadaver. –