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