也许是一个简单的问题,但我无法弄清楚.. 我尝试将数组中的值放在变量中,但它似乎不起作用。
$ 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]);
不起作用。
答案 0 :(得分:8)
因为$array[1]
是1
的关键$array
。如果您使用PHP 5.4+,您可以直接执行此操作:
print_r(array_keys($array)[1]);
否则你必须首先保存变量:
$keys = array_keys($array);
print_r($keys[1]);
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的数组。