PHP Микрофункция аналог array_count_values
Добрый день уважаемые коллеги, затык, надеюсь поможете за небольшую сумму.
Есть массив среднего размера состоящий из элементов отпарсенных из обычного HTML,
переведенного из различных кодировок в UTF8
Далее с ним совершаются следующие действия.
$pieces=array_count_values($pieces);
$pieces=arsort($pieces,SORT_NUMERIC);
$pieces=array_keys($pieces);
Что по логике должно приводить к сортировке слов в массиве по частоте его появления.
Но array_count_values возвращает нулевой массив.
При этом тест на произвольных данных работает без проблем.
set_time_limit (600);
$A=array("0", "1", "2", "3", "4", "5", "6","7","8","9","-",".","@","_"," ","@",
"a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z",
"а","б","в","г","д","е","ё","ж","з","и","й","к","л","м","н","о","п","р","с","т","х","ш","щ","у","ц","ф","ы","э","ю","ь","ч","я");
$c=count($A);
for ($i = 0; $i
{
$num=rand(0, $c-1);
$ch1=$A[$num];
$num=rand(0, $c-1);
$ch2=$A[$num];
$num=rand(0, $c-1);
$ch3=$A[$num];
$B[]=$ch1.$ch2.$ch3;
}
// print_r($B);
unset($C);
$c=count($B);
$B=array_count_values($B);
$garbage=arsort($B,SORT_NUMERIC);
$B=array_keys($B);
print_r($B);
Подозрения падают на то что функция вылетает так как в ключ пишется значение которое там быть не должно, php удивляется и обнуляет массив.
Нужно написать функцию которая будет замещать верхние три строчки аналогичный код без array_count_values.
Бюджет до 150 рублей, ибо простое задание)))
Также было бы решением по этому заданию дать (первое рабочее решение оплачивается) мысль которая приведет к работе моего трехстрочного кода на моих данных без программированию какой-то другой функции.
Благодарю за внимание