由于 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 数组进行格式化输出,如下所示,将您的连字符的单词列表分解为数组传递给函数时没有错误。 您的数组中的某些值似乎是 nullnull 既不是字符串也不是整数: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创建)

PHP 统计数组中所有的值出现的次数 array_count_values 函数

array_count_values — 统计数组中所有的值

array_count_values — 统计数组中所有的值