[英]PHP Accessing an array element by its index as string literal, good or bad?
[英]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);
参考文献
这些是您可以实现所需目标的方式。 如您所知,第一个数组元素的索引是什么。
您的情况下没有“索引0”,因为PHP数组在内部不是原始意义上的数组,而是一种有序的哈希表。 但是您可以使用array_values
来获取索引为0的数组:
$element = array_values($array)[0];
这是所有索引的通用解决方案。 对于第一个和最后一个元素,如果可以忍受更改内部数组指针的副作用,则使用reset
和end
更快。
$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.