PHP数组索引不正确

PHP数组索引不正确,php,Php,我有一个数组($myArray)如下所示: Array ( [0] => 2001 [1] => 2002 [2] => 2003 [3] => 2004 [4] => 2005 [5] => 2006 [6] => 2007 等等 当我使用 $occurences = array_count_values($myArray) 我明白了 当我尝试使用 echo $occurenc

我有一个数组(
$myArray
)如下所示:

Array ( 
     [0] => 2001
     [1] => 2002
     [2] => 2003
     [3] => 2004
     [4] => 2005
     [5] => 2006
     [6] => 2007
等等

当我使用

$occurences = array_count_values($myArray)
我明白了

当我尝试使用

echo $occurences[0];
我犯了一个错误

未定义的偏移量:0


$occurrences
中没有键名“0”

正如您在问题的
$occurrences
打印中所看到的,该数组的键是
$myarray
中的值

如果要打印
$occurrences
的第一个值,应编写:

echo $occurences['2001'];

$occurrences
中没有键名“0”

正如您在问题的
$occurrences
打印中所看到的,该数组的键是
$myarray
中的值

如果要打印
$occurrences
的第一个值,应编写:

echo $occurences['2001'];
如果要在Occurrences数组上循环,请尝试使用
foreach()

foreach($occurences as $item) {
   echo $item . '<br>';
}
foreach($occurrences作为$item){
回显$item。“
”; }
但是如果只需要第一个元素,可以使用
reset($occurrences)

reset()
为您提供数组的第一个值,如果数组中有元素,它也会为您提供FALSE,以防数组为空。

如果要在ocurrences数组上循环,请尝试使用
foreach()

foreach($occurences as $item) {
   echo $item . '<br>';
}
foreach($occurrences作为$item){
回显$item。“
”; }
但是如果只需要第一个元素,可以使用
reset($occurrences)


reset()
为您提供数组的第一个值,如果数组中有一个元素,它还为您提供FALSE(如果数组为空)。
array\u count\u values
结果中的键是输入数组中的值。因此,您要查找的
[0]
密钥不存在。您可以在输出中看到

Array ( 
   [2001] => 5 
   [2002] => 7 
   [2003] => 7 ...

第一个键是
[2001]

如果要获取第一项,请明确参考
$executions[2001]
,或使用

echo reset($occurrences);
如果你不知道第一年会是什么样子

如果您想要的不仅仅是第一个元素,还可以使用foreach迭代
$executes

foreach ($occurrences as $year => $count) { ...

array\u count\u value
结果中的键是输入数组中的值。因此,您要查找的
[0]
密钥不存在。您可以在输出中看到

Array ( 
   [2001] => 5 
   [2002] => 7 
   [2003] => 7 ...

第一个键是
[2001]

如果要获取第一项,请明确参考
$executions[2001]
,或使用

echo reset($occurrences);
如果你不知道第一年会是什么样子

如果您想要的不仅仅是第一个元素,还可以使用foreach迭代
$executes

foreach ($occurrences as $year => $count) { ...
如果您阅读文档,它会告诉您该函数返回一个关联数组

将数组中的值作为键及其计数作为值返回关联数组

因此不能像那样调用
$occurrences
数组

根据你上面的解释,你有以下几点:

<?php
 $myarray = array ( 
   0 => 2001, 
   1 => 2002,
   2 => 2003,
   3 => 2004, 
   4 => 2005, 
   5 => 2006, 
   6 => 2007 );
 
$occurences = array_count_values($myarray);

print_r($occurences);
Array ( [2001] => 1 
        [2002] => 1 
        [2003] => 1 
        [2004] => 1 
        [2005] => 1 
        [2006] => 1 
        [2007] => 1 )
显然,这些值会有所不同,因为我猜您在
$myarray
中有一个更大的数据集

如果您想获得每一年的值,您可以执行
echo$occurrencess['2003'],它将返回当年的值。

如果您阅读文档,它会告诉您该函数返回一个关联数组

将数组中的值作为键及其计数作为值返回关联数组

因此不能像那样调用
$occurrences
数组

根据你上面的解释,你有以下几点:

<?php
 $myarray = array ( 
   0 => 2001, 
   1 => 2002,
   2 => 2003,
   3 => 2004, 
   4 => 2005, 
   5 => 2006, 
   6 => 2007 );
 
$occurences = array_count_values($myarray);

print_r($occurences);
Array ( [2001] => 1 
        [2002] => 1 
        [2003] => 1 
        [2004] => 1 
        [2005] => 1 
        [2006] => 1 
        [2007] => 1 )
显然,这些值会有所不同,因为我猜您在
$myarray
中有一个更大的数据集


如果您想获得每一年的值,您可以执行
echo$occurrencess['2003']它将返回当年的值。

您原来的数组不是您想象的那样。在您尝试访问它的值之前,它可能已被更改。您正在计算这些值的出现次数,这将返回一个关联数组,每个键都是值,而“作为值”则是找到它的次数。所以它不是一个数值索引数组。这里有点混乱,因为您的值是整数您的原始数组不是您所认为的。在您尝试访问它的值之前,它可能已被更改。您正在计算这些值的出现次数,这将返回一个关联数组,每个键都是值,而“作为值”则是找到它的次数。所以它不是一个数值索引数组。这里有点混乱,因为您的值是整数