php:如何从数字索引获得关联数组键?

问题描述:

如果我有:php:如何从数字索引获得关联数组键?

$array = array('one' =>'value', 'two' => 'value2'); 

我怎么串one回从$array[1]

+3

换句话说,这是关于返回关联数组的第n个数组键。 – 2013-02-12 13:37:41

你不知道。您的阵列没有密钥[1]。你可以:

  • 创建一个新的数组,其中包含关键字:

    $newArray = array_keys($array); 
    echo $newArray[0]; 
    

    但值 “一” 是$newArray[0],不[1]
    快捷方式将是:

    echo current(array_keys($array)); 
    
  • 获取阵列的第一项:

    reset($array); 
    echo key($array); 
    
  • 获取对应于值 “值” 键:

    echo array_search('value', $array); 
    

这一切都取决于你想要做什么。事实上,[1]不对应“one”任何方式你打开它。

+0

制作新阵列我认为是最好的 – 2018-01-20 16:09:49

$array = array('one' =>'value', 'two' => 'value2'); 

$allKeys = array_keys($array); 
echo $allKeys[0]; 

将输出:

one 
+0

@KennyTM(结果:http://www.ideone.com/pFh0o)是一个死链接 – 2014-04-03 06:08:49

或者,如果你需要在一个循环

foreach ($array as $key => $value) 
{ 
    echo $key . ':' . $value . "\n"; 
} 
//Result: 
//one:value 
//two:value2 
+1

它回显所有键。但topicstarter需要通过数字索引来获取密钥。这是不一样的。 – pltvs 2010-11-04 10:54:54

+0

我很清楚这一点。但考虑到topicstarter是php的新手,这可能是他试图实现的目标,并且只是不知道foreach语法;) – Decko 2010-11-12 08:50:38

$array = array('one' =>'value', 'two' => 'value2'); 
$keys = array_keys($array); 
echo $keys[0]; // one 
echo $keys[1]; // two 

你可能会做这种方式:

function asoccArrayValueWithNumKey(&$arr, $key) { 
    if (!(count($arr) > $key)) return false; 
    reset($array); 
    $aux = -1; 
    $found = false; 
    while (($auxKey = key($array)) && !$found) { 
     $aux++; 
     $found = ($aux == $key); 
    } 
    if ($found) return $array[$auxKey]; 
    else return false; 
} 

$val = asoccArrayValueWithNumKey($array, 0); 
$val = asoccArrayValueWithNumKey($array, 1); 
etc... 

有没有tryed的代码,但我敢肯定它会工作。

祝你好运!

key功能帮助我,是非常简单的

+0

请不要只发布一个链接;它可能不会在未来工作。相反,扩展该功能的功能以及如何使用它。 – 2014-07-29 16:16:43

如果你只打算在特定的一个重点工作,你可以用一条线做到这一点,而不必存储阵列的所有键:

echo array_keys($array)[$i]; 
+0

谢谢...这就是for循环中所有人都需要的所有东西 – Andrew 2016-05-05 17:59:30

+2

注意:这需要PHP 5.4+ - [source 1](http://php.net/manual/en/language.types.array.php# language.types.array.syntax.accessing)| [源2](https://wiki.php.net/rfc/functionarraydereferencing)。 – Pang 2016-07-05 08:41:13

在Ram Dane的回答中展开,key函数是获取数组当前索引键的另一种方法。您可以创建以下功能,

function get_key($array, $index){ 
     $idx=0; 
     while($idx!=$index && next($array)) $idx++; 
     if($idx==$index) return key($array); 
     else return ''; 
    }