说,如果我有一个PHP数组:
$arr = array(
"a"=>"value a",
"b"=>"value b",
"0"=>"value 0",
"1"=>"value 1",
);
如果我想在索引0处检索元素,我该怎么做?
答案 0 :(得分:5)
其他答案显然没有读过。此解决方案适合您:
echo $arr[array_keys($arr)[0]];
这是一个Example
参考
您甚至可以使用array_values()
来获取第一个元素:
echo array_values($arr)[0];
你甚至可以这样做:
$keys = array_keys($arr);
echo $arr[$keys[0]];
基本上,array_keys()
获取密钥(在此示例中为'a','b','0','1'
)并将它们存储在数组中。允许您通过$keys[0]
访问第一个项目以访问第一个键(正在a
)。
这个解决方案完全基于@ mario的comment,因为它是一种完全可行的方法来实现您的需求!
或者,您可以使用reset()
和current()
来实现此目的,其中reset()
将索引设置为数组中的第一个元素,current()
显示当前由于重置,该数组中的元素将是第一个元素。
reset($arr);
echo current($arr);
参考
这些是你能够达到你想要的方式的方式。因为你不知道第一个数组元素的索引是什么。
答案 1 :(得分:1)
在你的情况下没有“索引0”,因为PHP数组内部不是原始意义上的数组,而是一种有序的hashmap。但您可以使用array_values
来获取0索引数组:
$element = array_values($array)[0];
这是所有索引的通用解决方案。对于第一个和最后一个元素,如果您可以忍受更改内部数组指针的副作用,则使用reset
和end
会更快:
$first = reset($array);
$last = end($array);
答案 2 :(得分:0)
要将数组设置为其值,您应该使用" array_values",但是您将丢失键。
我建议先保存你的密钥
$keys = array_keys($arr);
然后使用
array_values($arr);
您的结果实际上是一个平面数组,您可以使用索引获取值
$arr = array(
"value a",
"value b",
"value 0",
"value 1",
);
完成后,您可以将键与数组
组合在一起$restored = array_combine($keys, $arr);
答案 3 :(得分:-1)
以上解决方案对您有所帮助,但另一种替代解决方案是=>
foreach($array as $key=>$value)
{
if($value==0)
{
$new_array[]=$key;
}
}
新数组将具有0索引的键。