如何以字母顺序返回值并组合大写和小写字符串 - php

时间:2018-01-30 08:22:32

标签: php arrays

<?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; ?>

代码返回值和计数:

  • Lorem 1
  • ipsu&#39; m 1
  • dolor 3
  • 坐1
  • lorem 5
  • nullam 1

    现在我想按字母顺序排序,但结合Lorem和lorem

1 个答案:

答案 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));