我有一个数组如下:
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'
。我怎么能这样做?
答案 0 :(得分:257)
如果您有值并想要找到密钥,请使用array_search()
,如下所示:
$arr = array ('first' => 'a', 'second' => 'b', );
$key = array_search ('a', $arr);
$key
现在将包含值'a'
的键(即'first'
)。
答案 1 :(得分:49)
答案 2 :(得分:32)
答案 3 :(得分:16)
如果名称是动态的,那么你必须有类似
的东西$arr[$key]
这意味着$ key包含密钥的值。
您可以使用array_keys()
获取数组的所有键,例如
$arr = array('a' => 'b', 'c' => 'd')
$x = array_keys($arr);
会给你
$x = array(0 => 'a', 1 => 'c');
答案 4 :(得分:14)
是的,你可以在PHP中提供这种支持的少数几种语言之一。
foreach($arr as $key=>$value)
{
}
答案 5 :(得分:6)
使用array_keys()
获取所有唯一键的数组。
请注意,也可以使用$arr
等数字索引访问包含$arr[0]
等命名键的数组。
答案 6 :(得分:6)
如果需要返回具有相同值的数组元素,请使用array_keys()
函数
$array = array('red' => 1, 'blue' => 1, 'green' => 2);
print_r(array_keys($array, 1));
答案 7 :(得分:4)
这是另一个选项
$array = [1=>'one', 2=>'two', 3=>'there'];
$array = array_flip($array);
echo $array['one'];
答案 8 :(得分:0)
你可以使用php的关键功能获取密钥名称:
<?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 - Manual