PHP如何仅通过其索引引用数组元素?
假设我有一个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
$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的术语无论如何都很糟糕,因为“数组”实际上不是数组,一方面)。所以不,我不明白他到底想要什么。“意思是第一个元素”只是一个猜测