2009-11-05 106 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找到它。