从array_keys获取值

时间:2013-12-17 11:16:54

标签: php

也许是一个简单的问题,但我无法弄清楚.. 我尝试将数组中的值放在变量中,但它似乎不起作用。

  

$ array = array(0 => 100,“color”=>“red”);

     

的print_r(array_keys($阵列));

输出:

Array
(
    [0] => 0
    [1] => color
)

那为什么我不能说:

  

的print_r(array_keys($阵列[1]));

因此它会输出:color

如何将color放入变量中?

* 更新:遗憾的是我在PHP 5.3中工作

  

的print_r(array_keys($阵列)[1]);

不起作用。

3 个答案:

答案 0 :(得分:8)

因为$array[1]1的关键$array。如果您使用PHP 5.4+,您可以直接执行此操作:

print_r(array_keys($array)[1]);

DEMO

否则你必须首先保存变量:

$keys = array_keys($array);
print_r($keys[1]);

DEMO

Manual entry for array deferencing in 5.4+

  

从PHP 5.4开始,可以直接对函数或方法调用的结果进行数组取消引用。之前只能使用临时变量。

答案 1 :(得分:0)

你的意思是:

print_r(array_keys($array)[1]);
// -----------------------^^^ After array_keys()

答案 2 :(得分:0)

因为$array[1]不是数组。它只有一个字符串值。

array_keys函数只识别数组,不能将字符串键。

如果$array[1]有一个数组,那么它将返回一个值为keys的数组。