2013-01-17 3 views
1

Я использую фреймворк Codeigniter PHP и пытаюсь извлечь ключевые слова со страницы. Полный код для справки можно увидеть here. Однако он не готов.Предупреждающее сообщение, отображаемое из-за array_count_values ​​()

Проблема связана с функцией массива в следующей строке:

$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! 

EDITED: массив $ слов для ссылка не найдена here.

Нет никаких спецификаций l символов или недопустимых символов, которые мне известны в массиве $ words. Дефисы и периоды не читаются функцией или есть какая-то другая проблема?

+0

Вы пропусканием * строку * в функцию или * массив * ?! – deceze

+0

Его массив, называемый $ words, который я передаю, как вы можете видеть. Я отобразил этот массив как строку слов, разделенных дефисами для ссылки. Так что кто-то может найти какое-то слово, которое функция не может читать как строку или целое число. – SilentAssassin

+0

вы можете сделать отформатированный вывод вашего массива '$ words', как вы можете видеть ниже, нет ошибки при передаче вашего дефисного списка слов, взорванных в массив для функции. –

ответ

5

У вас есть 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 
+0

Хорошо, это работает! Есть ли способ удалить нулевую запись из массива? И только первая и последняя записи массива являются нулевыми. Это происходит по другой причине или непоследовательности? – SilentAssassin

+1

это зависит от вашего кода, вы не разместили много кода, чтобы понять, почему он так себя ведет. и да, вы можете удалить нулевые значения вашего массива, посмотрите [здесь] (http://us3.php.net/array_filter) и [здесь] (http://stackoverflow.com/questions/2169669/ remove-element-from-array-on-its-value) тоже. –

Смежные вопросы