很尴尬地问一下,这可能是一个重复的问题,但我的谷歌搜索结果不太理想(我猜是我搜索方式不对),这样一个基本的问题让我感到恼火。
我有一个包含未知值的数组。
在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 = 3;
foreach (array_keys($arr) as $i => $key) {
if (($i+1) % $n) {
continue;
}
$value = $arr[$key];
}
for($i = 0; $i<$n; $i++){
$myVal = next();
}
echo $myVal;
已经由@deceze提到了其他访问特定元素的方法。
<pre><?php var_dump($arr); ?></pre>
- deceze