2016-04-03 16 views
0

Bir dizide değeri aramaya çalışıyorum. Benim dizi formatı aşağıdaki gibidir:Çok boyutlu dizide arama değeri

Array 
(
    [2] => Array([0] => [HEADER])  
    [3] => Array([0] => "ACCESSION #" 
       [1] => "F4216027")  
    [4] => Array([0] => "ACTIVATION CODE" 
       [1] => "PGMWZ-PUSUU") 
    [5] => Array([0] => "CUSTOMER FIRST NAME" 
       [1] => "JAMES") 
); 

Ben "CUSTOMER FIRST NAME" aramak çalışıyorum edin. Aşağıdaki işlevle denedim. [5]

bundan kurtulmak için bana yardım edin: Ama sonuç

function searchForValue($id, $array) { 
    foreach ($array as $key => $val) { 
     if ($val[0] === $id) { 
      return $key; 
     } 
    } 
    return null; 
} 

Ve beklenen çıkış ebeveyn endeksinin anahtarıdır. Şimdiden teşekkürler.

+0

sen ne yaptın? bazı kodları paylaş! –

+1

@Santosh: Denediğim işlevi ekledim. Ayrıca diğer yollarla da denedim .. – sAcH

+0

dizisinde hata var lütfen düzeltin! Satır: 5, Hata türü: 4 İleti: sözdizimi hatası, beklenmedik '=>' (T_DOUBLE_ARROW), bekliyor ')' –

cevap

1

Basit çözüm foreach ve in_array işlevini kullanarak: Bugüne kadar

$search_word = "CUSTOMER FIRST NAME"; 
$parent_key = null; 

// $arr is your initial array 
foreach ($arr as $k => $v) { 
    if (in_array($search_word, $v)) $parent_key = $k; 
} 

print_r($parent_key); // 5 
+0

Yanıt için teşekkürler. Ama hala bana boş bir çıkış veriyor. Hala çözümü bulmak için çalışıyoruz. – sAcH

+0

@sAcH, bir şeyleri kaçırmadığınıza emin misiniz? çünkü sunduğun diziyi kullandım ve bana "5" ana anahtar olarak iyi çalışıyor. Yazım hataları için kodunuzu kontrol edin – RomanPerekhrest

+0

Teşekkür ederiz. İşe yarıyor. – sAcH

İlgili konular