2012-01-04 23 views
84

anahtar adını alın:PHP aşağıdaki gibi bir dizi var dizi değeri

function example() { 
    /* some stuff here that pushes items with 
     dynamically created key strings into an array */ 

    return array(// now lets pretend it returns the created array 
     'firstStringName' => $whatEver, 
     'secondStringName' => $somethingElse 
    ); 
} 

$arr = example(); 

// now I know that $arr contains $arr['firstStringName']; 

ben array_keys($arr) döngü am güçlü şekilde $arr['firstStringName'] dizinini öğrenmek ve anahtar dizesi dönmek gerekir 'firstStringName' onun endeksi ile. Bunu nasıl yapabilirim?

+0

olduğunu Neyi başarmaya çalıştığın vakası? –

cevap

168

.. size

$x = array(0 => 'a', 1 => 'c'); 
+10

'array_filter()', anahtarları koruduğu için yalnızca eşleşen ilk sonuç yerine tüm eşleşen sonuçları döndürmeniz gerekiyorsa kullanılabilir. –

+0

awesomeeeeeeeee –

+0

Burada dikkat etmeye değer bir şey var: Bu çözüm benim için çalışmıyordu, ben (sıralama ($ arr)) dizisi sıralama anahtar adları kaldırır ve varsayılan 0,1,2, etc. indeksi tatil olduğunu keşfedene kadar değerler. Yani sıralama yapıyorsanız, asort (asort ($ arr)) kullanın. Bu anahtar değerleri korur. http://php.net/manual/en/function.asort.php – Rich701

6

Tüm benzersiz anahtarların bir dizisini almak için array_keys() öğesini kullanın.

$ arr gibi adlandırılmış tuşlara sahip bir dizinin, $ arr [0] gibi sayısal dizinlerle de erişilebileceğini unutmayın.

http://php.net/manual/en/function.array-keys.php

13

için anahtar değeri dönecektir Eğer

$arr[$key] 

gibi adınızın dinamik, o zaman gereken bir şey olduğu '$ anahtarının va içerdiği anlamına gelir anahtarın rengi.

Dizinin TÜMÜ tuşlarını almak için array_keys() kullanabilirsiniz. Eğer bir değere sahip ve bulmak istiyorsanız

$arr = array('a' => 'b', 'c' => 'd') 
$x = array_keys($arr); 

foreach($arr as $key=>$value) 
{ 

} 
10

Evet infact olabilir php böyle destek sağlamak birkaç dillerinden biridir verecekti anahtar aşağıdaki gibi array_search() kullanın:

$arr = array ('first' => 'a', 'second' => 'b',); 
$key = array_search ('a', $arr); 

$key şimdi 'a' değeri ('first') değerini içerecektir.Eğer doğru anladıysam

26

, sadece kullanamazsınız: Bir dönmek gerekirse

foreach($arr as $key=>$value) 
{ 
    echo $key; 
} 

array_keys() fonksiyonu

array_keys Function

+0

Düzenlendi. Teşekkürler Mark! – rwb

+0

Sanırım array_search php işlevini arıyor - http://php.net/manual/en/function.array-search.php – Junior

0

kontrol belgeleri bakın aynı değere sahip dizi elemanları, array_keys() işlevini kullanın

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

anahtar adını almak için php anahtar işlevi kullanabilirsiniz: Burada gibi

<?php 
    $array = array(
    'fruit1' => 'apple', 
    'fruit2' => 'orange', 
    'fruit3' => 'grape', 
    'fruit4' => 'apple', 
    'fruit5' => 'apple'); 

    // this cycle echoes all associative array 
    // key where value equals "apple" 
    while ($fruit_name = current($array)) { 
     if ($fruit_name == 'apple') { 
     echo key($array).'<br />'; 
     } 
    next($array); 
    } 
?> 

: Burada PHP:key - Manual

2

bir kullanımla ayrıntılara girebilir başka bir seçenek

$array = [1=>'one', 2=>'two', 3=>'there']; 
$array = array_flip($array); 
echo $array['one'];