Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中访问数组的第N个元素_Php_Arrays - Fatal编程技术网

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

如何在PHP中访问数组的第N个元素,php,arrays,Php,Arrays,我很不好意思问这个问题,很可能是重复的,但我的谷歌搜索结果很短(我猜我搜索不正确),这样一个基本的问题让我很恼火 我有一个数组,其中包含我不知道的值 在java中,为了查看第二个条目,我将使用 var = array[1] 我知道Php数组是键值对,但我怎么能简单地查看数组中的第n个值来查看它的键值对,更好的是,只访问键值?如果您的键是数字的,那么它的工作原理完全相同: $arr = ['one', 'two', 'three']; // equivalent to [0 => 'one

我很不好意思问这个问题,很可能是重复的,但我的谷歌搜索结果很短(我猜我搜索不正确),这样一个基本的问题让我很恼火

我有一个数组,其中包含我不知道的值

在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个元素,可以使用n次访问第n个元素

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

for($i=0;$i如果要访问每个第N个元素:

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

    $value = $arr[$key];
}

默认情况下,PHP也使用int作为键,从0开始。数组可能是实数数组,也可能是哈希映射;两者都是一种类型,是的,这可能会非常混乱。没有内置的方法来检查这一点(请参阅:)。请注意,某些函数/操作可以将“数组”转换为“哈希映射”反之亦然,
array
类型是IMHO…@Clément and raud语言的主要设计缺陷之一-当我使用var dump或控制台日志时,我只会得到“array”。如果我计算($array)我得到了类似于“35”的值。因此我知道有一些值,但我不知道如何访问它们。你不能控制台。记录PHP数组-你必须在PHP代码中使用var_dump($array)或print_r($array)来替换$array变量名,用保存数组的实际变量名。
谢谢。我使用了“$keys=array\u keys($arr);echo$arr[$keys[1]];“我之所以只想要一个,是因为对所有这些项进行迭代会使页面崩溃。然后,您可能会犯其他错误。简单的迭代不会使任何内容崩溃。数组_切片很好,但key()是bool$preserve_keys=TRUE;-)