找到相应数组值的键

时间:2009-11-05 07:15:19

标签: php arrays

我有这样的数组。我想要的是获取特定值的索引值。即,我想知道值“UD”等的索引。

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

我该怎么办?

6 个答案:

答案 0 :(得分:9)

array_search函数适用于该用途

snipet:

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

答案 1 :(得分: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
}

答案 2 :(得分:3)

你最好的选择是:

array_keys()从输入数组中返回键,数字和字符串。

如果指定了可选的search_value,则仅返回该值的键。否则,返回输入中的所有键。

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

Array
(
    [0] => 2
)

不使用array_search()

的可能注意事项

array_search()如果在haystack中多次找到needle,则返回第一个匹配的键。要返回所有匹配值的键,请使用带有可选search_value参数的array_keys()。

答案 3 :(得分:2)

我建议array_flip

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

答案 4 :(得分: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”(“Jack”,“Jacob”)。

过去可以使用create function,或者只是事先定义一个函数,但这种语法使它更易于访问。

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

答案 5 :(得分:0)

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

我使用array_keys来查找它。