关联数组的键是动态生成的。如何获得这样一个数组的“密钥”?
$arr = array ('dynamic_key' => 'Value');
我知道可以通过这样的 foreach 循环访问它:
foreach ($arr as $key => $val) echo "Key value is $key";
但是,我知道这个数组只有一个键,并且希望避免 foreach 循环。是否可以以任何其他方式访问此元素的值?或者获取密钥名称?
关联数组的键是动态生成的。如何获得这样一个数组的“密钥”?
$arr = array ('dynamic_key' => 'Value');
我知道可以通过这样的 foreach 循环访问它:
foreach ($arr as $key => $val) echo "Key value is $key";
但是,我知道这个数组只有一个键,并且希望避免 foreach 循环。是否可以以任何其他方式访问此元素的值?或者获取密钥名称?
编辑: 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
最短、最简单和最独立的解决方案是:
$key = key($arr);
$value = reset($arr);
$keys = array_keys($arr);
echo $keys[0];
或array_values()
用于价值。
您可以使用array_shift(array_keys($arr))
(witharray_values
获取值),但它仍然在内部进行循环。
那么array_keys()呢?
它确实返回一个数组......
你的意思是你有 entry 的值,想要拿到 key 吗?
array_search ($value, $array)
如果在数组中找到 needle 的键,则返回它,否则返回 FALSE。
如果在 haystack 中多次找到 needle,则返回第一个匹配的键。要返回所有匹配值的键,请使用带有可选 search_value 参数的 array_keys()。
更多细节: http: //php.net/manual/en/function.array-search.php