Я смущен, чтобы спросить об этом, и это, скорее всего, дубликат, но мои результаты в 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]; }