Как получить доступ к N-му элементу массива в PHP

Я смущен, чтобы спросить об этом, и это, скорее всего, дубликат, но мои результаты в google не подходят (я искал неправильно, я думаю), и такой основной вопрос меня лишает меня.

У меня есть массив, содержащий значения, которые я не знаю.

В java, чтобы посмотреть на вторую запись, я бы использовал что-то вроде

var = array[1] 

Я понимаю, что массивы Php являются парами ключ-значение, но как я могу просто посмотреть на n-ое значение в массиве, чтобы увидеть его пару с ключом и даже лучше, а затем получить доступ только к ключу / значению?

Если ваши клавиши являются числовыми, то он работает точно так же:

 $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; } 

Если вы хотите получить доступ к n-му элементу, не зная индекса, вы можете использовать next () n раз, чтобы достигнуть n-го элемента.

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

Существуют и другие способы доступа к определенному элементу, уже упомянутому @deceze.

Если вы хотите получить доступ к каждому N-му элементу:

 $n = 3; foreach (array_keys($arr) as $i => $key) { if (($i+1) % $n) { continue; } $value = $arr[$key]; }