我有这样的数组。我想要的是获取特定值的索引值。即,我想知道值“UD”等的索引。
Array
(
[0] => LN
[1] => TYP
[2] => UD
[3] => LAG
[4] => LO
)
我该怎么办?
答案 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,或者只是事先定义一个函数,但这种语法使它更易于访问。
答案 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来查找它。