由于 array_count_values() 显示警告消息
Posted
技术标签:
【中文标题】由于 array_count_values() 显示警告消息【英文标题】:Warning message displayed due to array_count_values() 【发布时间】:2012-12-31 18:33:10 【问题描述】:我正在使用 php 的 Codeigniter 框架并尝试从页面中提取关键字。完整代码参考here。但它不是现成的。
问题是由于以下行中的数组函数:
$keywordCounts = array_count_values( $words );
显示的错误信息如下:
A PHP Error was encountered
Severity: Warning
Message: array_count_values() [function.array-count-values]: Can only count STRING and INTEGER values!
已编辑: reference 的数组 $words 可以在 here.
找到据我所知,$words 数组中没有特殊符号或无效字符。连字符和句点没有被函数读取,还是有其他问题?
【问题讨论】:
你是传递一个字符串到函数还是一个数组?! 它是一个名为 $words 的数组,如您所见,我正在传递它。我已将该数组显示为由连字符分隔的一串单词以供参考。这样有人可能会找到一些函数无法读取为字符串或整数的单词。 您能否对$words
数组进行格式化输出,如下所示,将您的连字符的单词列表分解为数组传递给函数时没有错误。
您的数组中的某些值似乎是 null
和 null
既不是字符串也不是整数:codepad.viper-7.com/0bniV2
@RahulYadav 原谅我,我消除了非空值。这是您需要的:codepad.viper-7.com/RuQLGw
【参考方案1】:
您的数组中有null
值。在使用 array_count_values
之前,您必须像这样替换它们:
$x = array('s'=>'ss', 'a',4 , 'sss' => null);
$ar = array_replace($x,array_fill_keys(array_keys($x, null),''));
$v = array_count_values($ar);
var_dump($v);
这将导致:
array (size=4)
'ss' => int 1
'a' => int 1
4 => int 1
'' => int 1
【讨论】:
好吧,这行得通!有没有办法从数组中删除空条目?并且只有数组的第一个和最后一个条目为空。发生这种情况是由于其他原因还是不一致? 这取决于您的代码,您还没有发布太多代码来了解它为什么会这样。是的,您可以删除数组的空值索引,也可以查看 here 和 here。以上是关于由于 array_count_values() 显示警告消息的主要内容,如果未能解决你的问题,请参考以下文章
php计算数组相同值出现次数的代码(array_count_values)
迭代php数组中的未知键(使用array_count_values创建)
PHP 统计数组中所有的值出现的次数 array_count_values 函数