12

关联数组的键是动态生成的。如何获得这样一个数组的“密钥”?

$arr = array ('dynamic_key' => 'Value');

我知道可以通过这样的 foreach 循环访问它:

foreach ($arr as $key => $val) echo "Key value is $key";

但是,我知道这个数组只有一个键,并且希望避免 foreach 循环。是否可以以任何其他方式访问此元素的值?或者获取密钥名称?

4

6 回答 6

14

编辑: http: //php.net/each说:

每个

警告自 PHP 7.2.0 起,该函数已被弃用。强烈建议不要依赖此功能。


使用key()很好。
如果您仍然要获取该值,您也可以使用each()list()

$arr = array ('dynamic_key' => 'Value');
list($key, $value) = each($arr);
echo $key, ' -> ', $value, "\n";

印刷dynamic_key -> Value

于 2010-02-16T10:34:16.960 回答
7

最短、最简单和最独立的解决方案是:

$key   = key($arr);
$value = reset($arr);
于 2016-07-15T11:42:35.807 回答
6
$keys = array_keys($arr);
echo $keys[0];

array_values()用于价值。

于 2010-02-16T07:03:19.523 回答
0

您可以使用array_shift(array_keys($arr))(witharray_values获取值),但它仍然在内部进行循环。

于 2010-02-16T07:03:47.550 回答
0

那么array_keys()呢?

它确实返回一个数组......

于 2010-02-16T07:04:14.650 回答
0

你的意思是你有 entry 的值,想要拿到 key 吗?

array_search ($value, $array) 

如果在数组中找到 needle 的键,则返回它,否则返回 FALSE。

如果在 haystack 中多次找到 needle,则返回第一个匹配的键。要返回所有匹配值的键,请使用带有可选 search_value 参数的 array_keys()。

更多细节: http: //php.net/manual/en/function.array-search.php

于 2010-02-16T07:04:41.517 回答