2012-08-28 137 views
2

我有一個數組,我想獲得一個特定的值的位置之後PHP數組獲取特定值

例子:

$my_array = array(0,2,5,3,7,4,5,2,1,6,9); 

我的搜索是5號位置在序列號5爲(和)

如果我調用array_search函數,總是返回陣列女巫的第一個位置是。

有無論如何獲得具體價值的兩個或多個位置?

回答

11

使用array_keys與可選的搜索參數,應返回所有的鍵。

$matches = array_keys($my_array, 5);

+0

是的謝謝你使用array_keys更好,謝謝christian.thomas – AkisC

+0

如果數組鍵被改變,該怎麼辦? – Aabid

+0

完美。感謝這個真棒解決方案 – BoCyrill

1

只是循環陣列上:

/* Searches $haystack for $needle. 
    Returns an array of keys for $needle if found, 
    otherwise an empty array */ 
function array_multi_search($needle, $haystack) { 
    $result = array(); 
    foreach ($haystack as $key => $value) 
    if ($value === $needle) 
     $result[] = $key; 
    return $result; 
} 
+0

謝謝回答埃米爾Vikström分隔值的數組,是的,這作品! – AkisC

1
$result = array(); 
    foreach ($array as $key => $value) 
    { 
     $result[$value] =implode(',',array_keys($array,$value)) 

    } 
    echo '<pre>'; 
print_r($result); 

它會給你價值觀的關鍵和它們的出現是由逗號