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

myo*_*yol 11 php arrays

我很尴尬地问这个并且它很可能是重复的,但是我的谷歌搜索结果很短(我想错误地搜索)并且这样一个基本问题激怒了我.

我有一个包含我不知道的值的数组.

在java中,看看第二个条目,我会使用类似的东西

var = array[1]
Run Code Online (Sandbox Code Playgroud)

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

dec*_*eze 30

如果您的密钥是数字,那么它的工作方式完全相同:

$arr = ['one', 'two', 'three']; // equivalent to [0 => 'one', 1 => 'two', 2 => 'three']
echo $arr[1]; // two
Run Code Online (Sandbox Code Playgroud)

如果您的密钥不是数字或不连续数字,它会有点棘手:

$arr = ['one', 'foo' => 'bar', 42 => 'baz'];
Run Code Online (Sandbox Code Playgroud)

如果你知道你想要的钥匙:

echo $arr['foo']; // bar
Run Code Online (Sandbox Code Playgroud)

但是,如果您只知道偏移量,可以尝试这样做:

$keys = array_keys($arr);
echo $arr[$keys[1]];
Run Code Online (Sandbox Code Playgroud)

或者数字重新索引数组:

$values = array_values($arr);
echo $values[1];
Run Code Online (Sandbox Code Playgroud)

或切片:

echo current(array_slice($arr, 1, 1));
Run Code Online (Sandbox Code Playgroud)

尽管如此,你很可能想要在数组中循环,这通常是你对未知内容数组所做的.如果内容未知,那么您对一个特定的偏移感兴趣似乎很奇怪.

foreach ($arr as $key => $value) {
    echo "$key: $value", PHP_EOL;
}
Run Code Online (Sandbox Code Playgroud)

  • 然后你可能做错了什么.一个简单的迭代不应该崩溃任何东西. (2认同)