如果我有:
$array = array( 'one' =>'value', 'two' => 'value2' );
如何从one
获取字符串$array[1]
?
答案 0 :(得分:103)
你没有。您的数组没有键[1]
。你可以:
制作一个新数组,其中包含以下键:
$newArray = array_keys($array);
echo $newArray[0];
但值“one”位于$newArray[0]
,而不是[1]
捷径是:
echo current(array_keys($array));
获取数组的第一个键:
reset($array);
echo key($array);
获取与值“value”对应的键:
echo array_search('value', $array);
这完全取决于你想要做什么。事实是,[1]
不对应于“一”你转向它的方式。
答案 1 :(得分:51)
$array = array( 'one' =>'value', 'two' => 'value2' );
$allKeys = array_keys($array);
echo $allKeys[0];
将输出:
one
答案 2 :(得分:16)
如果您只计划使用一个密钥,您可以使用一行完成此操作,而无需为所有密钥存储数组:
echo array_keys($array)[$i];
答案 3 :(得分:5)
或者如果你需要它循环
foreach ($array as $key => $value)
{
echo $key . ':' . $value . "\n";
}
//Result:
//one:value
//two:value2
答案 4 :(得分:2)
$array = array( 'one' =>'value', 'two' => 'value2' );
$keys = array_keys($array);
echo $keys[0]; // one
echo $keys[1]; // two
答案 5 :(得分:0)
你可以这样做:
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...
没有尝试过代码,但我很确定它会起作用。
祝你好运!答案 6 :(得分:0)
key功能帮助了我,非常简单
答案 7 :(得分:0)
如果它是第一个元素,即$array[0]
,则可以尝试:
echo key($array);
如果它是第二个元素,即$array[1]
,则可以尝试:
next($array);
echo key($array);
我认为当必需元素是数组的第一个,第二个或至多第三个元素时,应使用此方法。在其他情况下,应使用循环,否则代码的可读性会降低。
答案 8 :(得分:0)
再举一个例子:
获取数组中出现频率最高的:
PHP >= 7.3:
$ php --version
PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies
$ php -a
Interactive mode enabled
php > $a = array_count_values(array('abc','abc','def','def','def'));
php > var_dump($a);
array(2) {
["abc"]=>
int(2)
["def"]=>
int(3)
}
php > arsort($a);
php > var_dump($a);
array(2) {
["def"]=>
int(3)
["abc"]=>
int(2)
}
php > var_dump(array_key_first($a));
string(3) "def"
php > var_dump(array_keys($a)[1]);
string(3) "abc"
如果您有密钥,您可以轻松查询值(= 频率)。
答案 9 :(得分:-1)
扩展Ram Dane的答案,key函数是获取数组当前索引的键的另一种方法。您可以创建以下功能
function get_key($array, $index){
$idx=0;
while($idx!=$index && next($array)) $idx++;
if($idx==$index) return key($array);
else return '';
}