2012-01-04 83 views
84

的鍵名我有一個數組,如下所示:PHP - 獲取數組值

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']; 

我需要找出的$arr['firstStringName']的索引,使我能夠遍歷array_keys($arr)和返回鍵串'firstStringName'由其索引。我怎樣才能做到這一點?

+0

您可以通過使用細說你想要達到什麼目的? – 2012-01-04 15:34:11

回答

168

如果你有一個價值,並希望找到鑰匙,使用array_search()這樣的:

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

$key現在將包含值爲'a'(即,'first')的密鑰。

+10

如果您需要返回所有匹配結果而不是第一個匹配的結果,可以使用'array_filter()',因爲它保留了鍵。 – 2014-11-27 01:40:28

+0

awesomeeeeeeeee – 2015-11-20 12:33:08

+0

我認爲這裏值得注意的一點是:這個解決方案對我來說並不奏效,除非我發現對數組進行排序(sort($ arr))會刪除這些鍵名,並使用默認的0,1,2等索引值。所以如果你正在排序,使用asort(asort($ arr))。這保持了關鍵值。 http://php.net/manual/en/function.asort.php – Rich701 2017-03-09 16:26:38

13

如果該名稱的動態,那麼你就必須有像

$arr[$key] 

這'd表示$ key包含va鑰匙。您可以使用array_keys()來獲得數組的所有鍵,例如,

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

會給你

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

是的,你可以INFACT PHP是誰提供這種支持的幾種語言之一..

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

} 
26

如果我理解正確的,不能單純使用:

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

PHP manual

+0

已編輯。謝謝馬克! – rwb 2012-01-04 15:40:49

+0

我認爲他正在尋找array_search php函數 - http://php.net/manual/en/function.array-search.php – Junior 2014-07-17 14:52:18

2

如果需要返回具有相同值的數組元素,使用array_keys()函數

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

您可以使用PHP的關鍵函數來獲取鍵名:

<?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); 
    } 
?> 

喜歡這裏:PHP:key - Manual

2

這裏是另一種選擇

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