2010-06-05 48 views
0

我有以下阵列检索数组键传递价值PHP

$group= array(
    [0] => 'apple', 
    [1] => 'orange', 
    [2] => 'gorilla' 
); 

我通过运行阵列组的每个功能,当环路命中大猩猩的价值观,我希望它吐出大猩猩的指数

foreach ($group as $key) { 

    if ($key == gorilla){ 
     echo //<------ the index of gorilla 
    } 

} 

回答

3

您可以使用array_search函数来获取键指定的值:

$key = array_search('gorilla', $group); 
+1

不错!最短的路。 – 2010-06-05 20:38:06

+0

@Pekka:你忘了它,但几天前你已经提供了这个功能的问题:) – Sarfraz 2010-06-05 20:39:21

+0

是的,我专注于“如何获得循环中的当前键”方面:) – 2010-06-05 20:40:01

1
foreach($group as $key => $value) { 
    if ($value=='gorilla') { 
     echo $key; 
    } 
} 

foreach($c as $k => $v)语法是类似于foreach($c as $v)语法,但它把相应的键/索引在$k(或任何变量被放置吨这里)为集合中的每个值$v

但是,如果您只是在寻找单个值的索引,那么array_search()可能会更简单。如果你正在寻找很多值的指数,坚持foreach

3
foreach($group as $index => $value) { 

if ($value == "gorilla") 
{ 
    echo "The index is: $index"; 
} 

} 
+0

虽然这是正确的,我认为在这里使用'key'这个词肯定是错误的。索引不链接到键,它们链接到值.. – Matt 2010-06-05 20:33:15

+0

@Matt完全,我只是复制变量名而不想。更正了,欢呼声。 – 2010-06-05 20:37:31

2

array_search - 检索数组给定的值如果成功则返回相应的密钥

<?php 
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red'); 

$key = array_search('green', $array); // $key = 2; 
$key = array_search('red', $array); // $key = 1; 
?>