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

PHP如何仅通过其索引引用数组元素?,php,arrays,Php,Arrays,假设我有一个PHP数组: $arr = array( "a"=>"value a", "b"=>"value b", "0"=>"value 0", "1"=>"value 1", ); 如果我想检索索引0处的元素,我该怎么做?其他答案显然没有读到它。此解决方案适用于您: echo $arr[array_keys($arr)[0]]; 这里有一个 参考资料 您甚至可以使用获取第一个元素: echo array_values($a

假设我有一个PHP数组:

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

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

其他答案显然没有读到它。此解决方案适用于您:

echo $arr[array_keys($arr)[0]];
这里有一个


参考资料

您甚至可以使用获取第一个元素:

echo array_values($arr)[0];

您甚至可以选择这样做:

$keys = array_keys($arr);
echo $arr[$keys[0]];
基本上,
array\u keys()
获取键(在本例中为
'a'、'b'、'0'、'1'
)并将它们存储在数组中。允许您通过
$keys[0]
访问第一个项目以访问第一个键(即
a


替代解决方案 此解决方案完全基于@mario's,因为它是实现您所需的完全可行的方法

或者,您可以使用
reset()
current()
来实现这一点,其中
reset()
将索引设置为数组中的第一个元素,并且
current()
显示该数组中的当前元素,由于重置,该元素将是第一个元素

reset($arr);
echo current($arr);


参考资料


这些都是你能够实现自己愿望的方法。因为您不知道第一个数组元素的索引是什么。

其他答案显然没有读到它。此解决方案适用于您:

echo $arr[array_keys($arr)[0]];
这里有一个


参考资料

您甚至可以使用获取第一个元素:

echo array_values($arr)[0];

您甚至可以选择这样做:

$keys = array_keys($arr);
echo $arr[$keys[0]];
基本上,
array\u keys()
获取键(在本例中为
'a'、'b'、'0'、'1'
)并将它们存储在数组中。允许您通过
$keys[0]
访问第一个项目以访问第一个键(即
a


替代解决方案 此解决方案完全基于@mario's,因为它是实现您所需的完全可行的方法

或者,您可以使用
reset()
current()
来实现这一点,其中
reset()
将索引设置为数组中的第一个元素,并且
current()
显示该数组中的当前元素,由于重置,该元素将是第一个元素

reset($arr);
echo current($arr);


参考资料


这些都是你能够实现自己愿望的方法。因为您不知道第一个数组元素的索引是什么。

要将数组设置为其值,您应该使用“array\u values”,但会丢失键

我建议先保存你的钥匙

$keys = array_keys($arr);
然后使用

array_values($arr);
您的结果实际上是一个平面数组,您可以在其中使用索引来获取值

$arr = array(
    "value a",
    "value b",
    "value 0",
    "value 1",
);
完成后,您可以将这些键与阵列组合起来

$restored = array_combine($keys, $arr);

要将数组设置为其值,应使用“array_values”,但会丢失键

我建议先保存你的钥匙

$keys = array_keys($arr);
然后使用

array_values($arr);
您的结果实际上是一个平面数组,您可以在其中使用索引来获取值

$arr = array(
    "value a",
    "value b",
    "value 0",
    "value 1",
);
完成后,您可以将这些键与阵列组合起来

$restored = array_combine($keys, $arr);

上述解决方案将对您有所帮助,但另一个备选方案是=>

foreach($array as $key=>$value)
{
 if($value==0)
  {
  $new_array[]=$key;
  }
}

新数组将具有索引为0的键。

上述解决方案将对您有所帮助,但另一个备选解决方案是=>

foreach($array as $key=>$value)
{
 if($value==0)
  {
  $new_array[]=$key;
  }
}
新数组将具有索引为0的键。

在您的示例中没有“索引0”,因为PHP数组内部不是原始意义上的数组,而是一种有序hashmap。但您可以使用
array\u值
获得0索引数组:

$element = array_values($array)[0];
这是所有索引的通用解决方案。对于第一个和最后一个元素,如果您能够承受更改内部数组指针的副作用,则使用
reset
end
会更快:

$first = reset($array);
$last = end($array);
在您的案例中没有“索引0”,因为PHP数组内部不是原始意义上的数组,而是一种有序hashmap。但您可以使用
array\u值
获得0索引数组:

$element = array_values($array)[0];
这是所有索引的通用解决方案。对于第一个和最后一个元素,如果您能够承受更改内部数组指针的副作用,则使用
reset
end
会更快:

$first = reset($array);
$last = end($array);

您是否正在寻找
$arr[“0”]
?对于索引
0
,确实有。对于任何其他情况:首先将其转换为索引数组。索引0表示位于第一个位置的元素,具有可变索引a?调用重置,并调用每个元素。您是否在寻找
$arr[“0”]
?对于索引
0
,具体来说是这样的。对于任何其他情况:首先将其转换为索引数组。索引0表示位于第一个位置且具有变量索引a的元素?调用reset,然后调用每个元素。这甚至与要求的不太接近。。。您也在检查值。这与要求的值甚至不接近。。。您也在检查值。谢谢。上面的答案就是这么说的:谢谢。这就是上面答案中所说的:“其他答案显然没有读到”-不,问题是不明确的,因为存在
“0”=>“值0”
。“在索引0处”可指元素
“值a”
(顺序中的第一个元素)或元素
“值0”
(其键为0的元素),具体取决于您对问题的解释方式。没有必要(事实上,没有任何根据)贬低他人。@Amadan他说,
“在索引0处”
(意思是第一个元素),而不是你刚才看到的索引0的
”。我同意你说的模棱两可,但如果你读了它并接受了它,你就会确切地看到他想要什么。它没有什么“清楚”的地方,我确实读过(并接受了它)。并不是所有的询问者都是以英语为母语的人,他们也没有使用最合适的术语(说到这里,PHP的术语无论如何都很糟糕,因为“数组”实际上不是数组,一方面)。所以不,我不明白他到底想要什么。“意思是第一个元素”只是一个猜测