2009-11-05 69 views
2

我有一個這樣的數組。我想要的是獲取特定值的索引值。即,我想知道價值「UD」指數等。找到對應數組值的鍵

Array 
(
    [0] => LN 
    [1] => TYP 
    [2] => UD 
    [3] => LAG 
    [4] => LO 
) 

我該怎麼做?

+0

你想知道一個值或多個值的索引嗎? – outis 2009-11-05 07:28:05

回答

9

array_search功能是用於那些使用

snipet:

$index = array_search('UD', $yourarray); 
if($index === false){ die('didn\'t found this value!'); } 
var_dump($index); 
+0

array_search()如果在haystack中發現不止一次針,則會返回第一個匹配鍵。要返回所有匹配值的鍵,請改用帶可選search_value參數的array_keys()。看看我的回答(array_keys()) – Lizard 2009-11-05 07:44:12

2

我建議array_flip

$value = "UD"; 
$new = array_flip($arr); 
echo "result: " . $new[$value]; 
4

使用array_search

$array = array(0 => 'LN', 1 => 'TYP', 2 => 'UD', 3 => 'LAG', 4 => 'LO'); 

$key = array_search('UD', $array); // $key = 2; 
if ($key === FALSE) { 
    // not found 
} 
+0

array_search()如果不止一次在乾草堆中發現針,則返回第一個匹配鍵。要返回所有匹配值的鍵,請改用帶可選search_value參數的array_keys()。查看我的回答 – Lizard 2009-11-05 07:43:31

3

您最好的選擇是:

array_keys()從輸入數組中返回鍵,數字和字符串。

如果指定了可選的search_value,則只返回該值的鍵。否則,將返回輸入中的所有鍵。不使用array_search))如果針在乾草堆裏不止一次發現

$array = array(0 => 'LN', 1 => 'TYP', 2 => 'UD', 3 => 'LAG', 4 => 'LO'); 
print_r(array_keys($array, "UD")); 

Array 
(
    [0] => 2 
) 

可能考慮(

array_search(,第一個匹配的鍵返回。要返回所有匹配值的鍵,請改用帶可選search_value參數的array_keys()。

0

只需要注意:其中一些array_ *函數在PHP 5.3中更加有用,並增加了匿名函數。在他們的名字

$values = array_filter($userArray, function($user) 
{ 
    // If this returns true, add the current $user object to the resulting array 
    return strstr($user->name(),"ac"); 
}); 

將返回所有元素在我們的包含「AC」用戶對象的虛擬排列(「傑克」,「雅各布」):你現在可以做的事情一樣。

在過去,創建函數或預先定義函數是可能的,但是這種語法使得它更容易訪問。

http://ca2.php.net/manual/en/functions.anonymous.php

0
$array = Array(0 => LN, 1 => TYP, 2 => UD, 3 => LAG, 4 => LO); 
$arrtemp = array_keys($array,'UD'); 
echo 'Result : '.$arrtemp[0]; 

我用array_keys找到它。