我很尴尬地问这个问题,它很可能是重复的,但我的谷歌搜索结果很短(即时搜索错误,我猜),这样一个基本问题是激怒我。如何在PHP中访问数组中的第N个元素
我有一个包含我不知道的值的数组。
在java中,看看在第2项,我会使用类似
var = array[1]
我理解PHP数组的键值对,但我怎么可以简单地看一下第n值的数组来查看它的键值对,甚至更好,然后访问键/值?
我很尴尬地问这个问题,它很可能是重复的,但我的谷歌搜索结果很短(即时搜索错误,我猜),这样一个基本问题是激怒我。如何在PHP中访问数组中的第N个元素
我有一个包含我不知道的值的数组。
在java中,看看在第2项,我会使用类似
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个元素。
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];
}
默认情况下,PHP也使用int作为键,从0 – Sugar
阵列开始*可能*是真实的阵列,或者可以* *是包含HashMap ;这是两种类型,是的,这可能是非常混乱。没有内置的方法来检查这个(请参阅:http://stackoverflow.com/questions/173400/php-arrays-a-good-way-to-check-if-an-array-is-associative-or -sequential?RQ = 1)。请注意,某些函数/操作可以将“阵列”转换为“哈希映射”,反之亦然......“阵列”类型是语言恕我直言的主要设计缺陷之一... – Carpetsmoker
var_dump($ array) –