2016-03-27 21 views
0

Çok boyutlu bir dizide değer bulmam gerekiyor, dizinin boyutu tanımlanmamış. varsayalım kullanıcı 1601 girer edelim , sonuç 011. olacak ve 1605 ise, sonuç Zipcode Yapabileceğiniz sonra benzersizdirÇok boyutlu dizide değeri bul

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

ben cevap ama ne beni heyecanlandıran şu endeksi 1 değerleri 3 karakter vardır ama gösteri uzunluğu 1 şudur:

ikinci ve üçüncü parametreler ne için bu iki örneklere bakın? – AbraCadaver

+0

@AbraCadaver Bunlar, yalnızca bir karakterin 1/3'ünü ağırlayan bazı sağlıklı karakterler olmalıdır. – Rizier123

+0

Sorunuzda bir cevabım var. Ancak, verilen soruya göre doğru olup olmadığını bilmiyorum. 2. endeksi döndürür. – aldrin27

cevap

3

ise diziye göre 015 olacaktır:

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

Veya eğer Territory Code eşsizdir:

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

array_column() oluşturmak için çok-boyutlu bir diziden bir sütun özler tek boyutlu bir dizi.

dizi array_column (dizi $ girişi, karışık $ column_key [karışık $ index_key = null])

ikinci parametre $column_key içine değerleri olarak çok-boyutlu bir dizi elde istediğiniz kolon oluşturan tek boyutlu dizi. Ve üçüncü parametre $index_key, hangi sütunu geri almak istediğiniz tek boyutlu dizi için anahtar olarak kullanmak istediğinizi tanımlar. $index_key tanımlanmamışsa, dizi sayısal olarak numaralandırılacaktır. İstenen çıktıyı 011 olsun anahtar olarak değerini 1601 Kullanılması

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

:

İlk kod örneği

Yani ilk örneği gibi bir dizi ayıklar. istenen çıktı olduğu anahtar 011 elde etmek array_search() ile 1601 için

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

ve aramalar:

ikinci kod örneği

İkinci bir örnek gibi bir dizi kullanır.

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

Herhangi bir yerde 'array_column()' kullanmadan cevap yazamazsın, değil mi :)? – Rizier123

+1

Bunlar taşlar dostum! :-) – AbraCadaver

+0

Benim için çalışıyor. Çok teşekkürler @AbraCadaver. –

İlgili konular