PHP如何仅通过索引引用数组元素?

时间:2015-02-04 06:34:32

标签: php arrays

说,如果我有一个PHP数组:

$arr = array(
    "a"=>"value a",
    "b"=>"value b",
    "0"=>"value 0",
    "1"=>"value 1",
);

如果我想在索引0处检索元素,我该怎么做?

4 个答案:

答案 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);

Example


参考

这些是你能够达到你想要的方式的方式。因为你不知道第一个数组元素的索引是什么。

答案 1 :(得分:1)

在你的情况下没有“索引0”,因为PHP数组内部不是原始意义上的数组,而是一种有序的hashmap。但您可以使用array_values来获取0索引数组:

$element = array_values($array)[0];

这是所有索引的通用解决方案。对于第一个和最后一个元素,如果您可以忍受更改内部数组指针的副作用,则使用resetend会更快:

$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索引的键。