繁体   English   中英

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

[英]PHP how to refer to an array element only by its index?

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

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

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

其他答案显然没有阅读。 该解决方案将为您服务:

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的注释,因为它是实现您所需要的完全可行的方法!

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

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

Example


参考文献

这些是您可以实现所需目标的方式。 如您所知,第一个数组元素的索引是什么。

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

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

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

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

要将数组设置为其值,应使用“ 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的键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM