如何在 PHP 中访问数组的第 N 个元素

2022-08-30 21:50:16

我很尴尬地问这个问题,这很可能是重复的,但我的谷歌结果很短(我猜我搜索不正确),这样一个基本问题让我很生气。

我有一个数组,其中包含我不知道的值。

在java中,要看一下第2个条目,我会使用类似的东西

var = array[1]

我知道Php数组是键值对,但是我怎么能简单地查看数组中的第n个值来查看它的键值对,甚至更好,然后只访问键/值?


答案 1

如果您的键是数字,那么它的工作原理完全相同:

$arr = ['one', 'two', 'three']; // equivalent to [0 => 'one', 1 => 'two', 2 => 'three']
echo $arr[1]; // two

如果你的键不是数字或不是连续的数字,它会变得有点棘手:

$arr = ['one', 'foo' => 'bar', 42 => 'baz'];

如果您知道所需的密钥

echo $arr['foo']; // bar

但是,如果您只知道偏移量,则可以尝试以下操作:

$keys = array_keys($arr);
echo $arr[$keys[1]];

或者以数字方式重新索引数组:

$values = array_values($arr);
echo $values[1];

或者切片:

echo current(array_slice($arr, 1, 1));

最有可能的是,无论如何,您都希望循环遍历数组,这通常是您对未知内容数组执行的操作。如果内容是未知的,那么无论如何你对一个特定的偏移量感兴趣似乎很奇怪。

foreach ($arr as $key => $value) {
    echo "$key: $value", PHP_EOL;
}

答案 2

如果要在不知道索引的情况下访问第 n 个元素,可以使用 next() n 次来访问第 n 个元素。

for($i = 0; $i<$n; $i++){
    $myVal = next();
}
echo $myVal;

还有其他方法可以访问特定元素,@deceze已经提到过。