<?php
//Get any text from input
$text = $_POST['text'];
//Regex for cleaning unwanted symbols
$regex = "/[a-zA-Z']+/";
//Split text to single words
preg_match_all($regex, $text, $words);
?>
<?php foreach ($words as $array): ?>
<?php $my_array_values = array_count_values($array); ?>
<?php while (list ($key, $val) = each ($my_array_values)): ?>
<div class="single_word">
<?php echo $key; ?>
<span class="word-count"><?php echo $val; ?></span>
</div>
<?php endwhile; ?>
<?php endforeach; ?>
代码返回值和计数:
nullam 1
现在我想按字母顺序排序,但结合Lorem和lorem
答案 0 :(得分:0)
将单词数组的值映射到各自的小写值。使用array_count_values
函数制作一个单词数组及其出现次数。
通过应用ksort
函数,使用其键对生成的数组进行排序。
旁注:利用函数的参数按值传递。这允许更好的组成。我们可以确定我们的原始数组未经修改,并且返回了一个新的数组。
function lexicalKeySort($arr) {
ksort($arr);
return $arr;
}
$words = ['lorem', 'Lorem', 'dolor', 'ipsum'];
$wordCount = array_count_values(
array_map('strtolower', $words)
);
var_dump(lexicalKeySort($wordCount));