获取数组值的键名

我有一个数组如下所示:

function example() {
/* some stuff here that pushes items with
dynamically created key strings into an array */


return array( // now lets pretend it returns the created array
'firstStringName' => $whatEver,
'secondStringName' => $somethingElse
);
}


$arr = example();


// now I know that $arr contains $arr['firstStringName'];

我需要找到$arr['firstStringName']的索引,以便我能够循环array_keys($arr)并通过索引返回键字符串'firstStringName'。我该怎么做呢?

537615 次浏览

使用array_keys()获取所有唯一键的数组。

请注意,具有命名键的数组(如$arr)也可以使用数值索引(如$arr[0])访问。

http://php.net/manual/en/function.array-keys.php

key($arr);

将返回当前数组元素的键值

http://uk.php.net/manual/en/function.key.php < a href = " http://uk.php.net/manual/en/function.key.php " > < / >

如果名字是动态的,那么你必须有

$arr[$key]

这意味着$key包含键的值。

你可以使用array_keys()来获取数组的所有键。

$arr = array('a' => 'b', 'c' => 'd')
$x = array_keys($arr);

会给你

$x = array(0 => 'a', 1 => 'c');

是的,你可以,事实上php是少数提供这种支持的语言之一。

foreach($arr as $key=>$value)
{


}

如果你有一个值并且想要找到键,可以像这样使用array_search():

$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);

$key现在将包含值'a'(即'first')的键。

如果我没理解错的话,你不能简单地用:

foreach($arr as $key=>$value)
{
echo $key;
}

看到PHP手册

如果需要返回具有相同值的数组元素,请使用array_keys()函数

$array = array('red' => 1, 'blue' => 1, 'green' => 2);
print_r(array_keys($array, 1));

你可以使用PHP的key函数来获取键名:

<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');


// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'<br />';
}
next($array);
}
?>

比如这里:PHP:key -手动

这是另一种选择

$array = [1=>'one', 2=>'two', 3=>'there'];
$array = array_flip($array);
echo $array['one'];