问题
If I have:
$array = array( 'one' =>'value', 'two' => 'value2' );
how do I get the string one back from $array[1] ?
回答1:
You don't. Your array doesn't have a key [1]. You could:
Make a new array, which contains the keys:
$newArray = array_keys($array); echo $newArray[0];But the value "one" is at
$newArray[0], not[1].
A shortcut would be:echo current(array_keys($array));Get the first key of the array:
reset($array); echo key($array);Get the key corresponding to the value "value":
echo array_search('value', $array);
This all depends on what it is exactly you want to do. The fact is, [1] doesn't correspond to "one" any which way you turn it.
回答2:
$array = array( 'one' =>'value', 'two' => 'value2' );
$allKeys = array_keys($array);
echo $allKeys[0];
Which will output:
one
回答3:
If you only plan to work with one key in particular, you may accomplish this with a single line without having to store an array for all of the keys:
echo array_keys($array)[$i];
回答4:
Or if you need it in a loop
foreach ($array as $key => $value)
{
echo $key . ':' . $value . "\n";
}
//Result:
//one:value
//two:value2
回答5:
$array = array( 'one' =>'value', 'two' => 'value2' );
$keys = array_keys($array);
echo $keys[0]; // one
echo $keys[1]; // two
回答6:
You might do it this way:
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...
Haven't tryed the code, but i'm pretty sure it will work.
Good luck!
回答7:
the key function helped me and is very simple
回答8:
If it is the first element, i.e. $array[0], you can try:
echo key($array);
If it is the second element, i.e. $array[1], you can try:
next($array);
echo key($array);
I think this method is should be used when required element is the first, second or at most third element of the array. For other cases, loops should be used otherwise code readability decreases.
回答9:
Expanding on Ram Dane's answer, the key function is an alternative way to get the key of the current index of the array. You can create the following function,
function get_key($array, $index){
$idx=0;
while($idx!=$index && next($array)) $idx++;
if($idx==$index) return key($array);
else return '';
}
来源:https://stackoverflow.com/questions/4095796/php-how-to-get-associative-array-key-from-numeric-index