如果我有:
$array = array( 'one' =>'value', 'two' => 'value2' );
如何获取字符串one
从后面$array[1]
?
Answers:
你不知道 您的数组没有键[1]
。你可以:
制作一个新数组,其中包含键:
$newArray = array_keys($array);
echo $newArray[0];
但是“一个”的值$newArray[0]
不是[1]
。
快捷方式是:
echo current(array_keys($array));
获取数组的第一个键:
reset($array);
echo key($array);
获取与值“ value”相对应的键:
echo array_search('value', $array);
这一切都取决于您到底要做什么。事实是,[1]
无论您以哪种方式将其都不对应于“一个”。
如果仅打算使用一个键,则可以用一行完成此操作,而不必为所有键存储一个数组:
echo array_keys($array)[$i];
或者如果您需要循环使用
foreach ($array as $key => $value)
{
echo $key . ':' . $value . "\n";
}
//Result:
//one:value
//two:value2
您可以这样进行:
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...
还没有尝试过代码,但是我很确定它会起作用。
祝好运!
该键功能帮助我,是非常简单的:
key()函数仅返回内部指针当前指向的数组元素的键。它不会以任何方式移动指针。如果内部指针指向元素列表的末尾或数组为空,则key()返回NULL。
例:
<?php
$array = array(
'fruit1' => 'apple',
'fruit2' => 'orange',
'fruit3' => 'grape',
'fruit4' => 'apple',
'fruit5' => 'apple');
// this cycle echoes all associative array
// key where value equals "apple"
while ($fruit_name = current($array)) {
if ($fruit_name == 'apple') {
echo key($array).'<br />';
}
next($array);
}
?>
上面的示例将输出:
fruit1<br />
fruit4<br />
fruit5<br />