2010-06-02 18 views

cevap

50

İlk eşleşen anahtarı bulmak için array_search()'u kullanabilirsiniz. kılavuzda itibaren

: alışkanlık size kesin anahtarları vermek böylece Kişisel dizi değerleri çiftleri olabilir

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); 

$key = array_search('green', $array); // $key = 2; 
$key = array_search('red', $array); // $key = 1; 
14

Bunun için array_keys işlevini kullanabilirsiniz.

Örnek:

$array = array("blue", "red", "green", "blue", "blue"); 
print_r(array_keys($array, "blue")); 

Bu

+0

Anahtarları okumak gibi mi? Farklı bir şekilde anladım (* değeri * için bir arama). –

+0

@Pekka: OP'nin aslında neye baktığını düşünelim, yine de ellerimiz olsun :) – Sarfraz

+0

array_search ve array_keys her ikisi de benim için çalışır, ancak array_search array_keys tarafından döndürülen dizinin ilk değerini almak için ekstra bir adım atmayı gerektirir. Bu yüzden, array_search'i kullanacağım, ancak her ikinize de iyi cevaplar verdiği için +1'i kullanacağım. –

0

Hayır gerçekten kolay yolu değeri blue için diziden anahtarı alacak. Dizi [$ key] == $ değer bulana kadar anahtarlar arasında geçiş yapın.

Bunu sık sık yaparsanız, değerleri tekrar anahtarlara eşleyen bir ters dizi/karma oluşturun. Birden fazla tuşun tek bir değerle eşlenebileceğini unutmayın.

+0

Eğer birçok arama yapman gerekiyorsa, ters bir harita oluşturmaya katılıyorum, ama kesinlikle [bir kolay yol] (http://stackoverflow.com/questions/2960066/best-way-to-get-array-key- from-value/2960083 # 2960083) –

+1

@barrycarter @ Michael_Mrozek, bkz. dizi_flip – mmattax

0

. Ancak, düşündüğüm yol gayet iyiydi ve

3
$arr = array('mango', 'orange', 'banana'); 
$a = array_flip($arr); 
$key = $a['orange']; 
+0

En hızlı - karşılaştırılamaz, sadece tuşları ile değerleri çevirin. – fkaufusi

İlgili konular