【发布时间】:2009-10-28 16:47:28
【问题描述】:
我有这个数组
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
如何获取元素的键?(例如 a=0,c=2)
【问题讨论】:
我有这个数组
Array
(
[0] => a
[1] => b
[2] => c
[3] => d
)
如何获取元素的键?(例如 a=0,c=2)
【问题讨论】:
<?php
$trans = array("a" => 1, "b" => 1, "c" => 2);
$trans = array_flip($trans);
print_r($trans);
?>
http://www.php.net/manual/en/function.array-flip.php
使用数组搜索 http://php.net/manual/en/function.array-search.php
<?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;
?>
【讨论】:
在数组中搜索给定的值,如果成功则返回相应的键。
示例 #1 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; ?>
【讨论】:
如果要搜索,请参见array_search (http://www.php.net/manual/en/function.array-search.php)
如果你在迭代它,你可以使用各种语法:
foreach ($a as $key => $value) { ... }
foreach (array_keys($a) as $key) { $value = $a[$key]; ... }
【讨论】:
如果您只想要密钥,请使用array_keys。
如果您想像示例中显示的那样翻转数组,请使用 array_flip
【讨论】:
array_keys($arr, 'a'); # 0
array_keys($arr, 'c'); # 2
【讨论】:
我个人喜欢@SilentGhost 的解决方案,但如果您进行多次搜索,速度会有所下降,此时您需要以下内容:
// assume you know you want the value for key 'c'
$array = ('a','b','c','d');
$keys = array_flip($array);
return $keys['c'];
【讨论】: