在按字母顺序对数组结果进行分组的同时,计算php中的标题字符?

在按字母顺序对数组结果进行分组的同时,计算php中的标题字符?,php,arrays,foreach,Php,Arrays,Foreach,我有一个php代码,如下所示 php代码: $beta_lists = array_flip($flip); print_r($beta_lists); // Line A foreach ($beta_lists as $title => $permalink) { $title_char = substr(transliterator_transliterate('Any-Latin;Latin-ASCII;', $title), 0, 1); } 行A打印以下阵列: Ar

我有一个php代码,如下所示

php代码:

$beta_lists = array_flip($flip);
print_r($beta_lists); // Line A

foreach ($beta_lists as $title => $permalink) {
    $title_char = substr(transliterator_transliterate('Any-Latin;Latin-ASCII;', $title), 0, 1);
}
行A打印以下阵列:

Array
(
    [Apple] => http://www.abc.mno/apple/
    [Ball] => http://www.abc.mno/ball/
    [Builders] => http://www.abc.mno/builders/
    [Bowling] => http://www.abc.mno/bowling/
    [Correct] => http://www.abc.mno/correct/
    [Campaign] => http://www.abc.mno/compain/
    [Direct] => http://www.abc.mno/direct/
    [Degree] => http://www.abc.mno/degree/
)
我试图通过上面的php代码实现的是,在按字母顺序对数组结果进行分组时,我想计算标题字符(在下面的例子中是4)。稍后我将按字母顺序对数组结果进行分组

A                  C

Apple            Correct

B                Compaingn

Ball                D  

Builders         Direct 

Bowling          Degree 
问题陈述:


我想知道我应该在上面的php代码中做些什么更改,以便在按字母顺序对数组结果进行分组时计算标题字符的总数(4)

一个选项是将标题排序到一个新数组中,根据标题的第一个字符进行分组。如果先创建数组,则该排序将保留在新数组中。然后,为了获得标题字符的数量,您可以简单地使用结果数组。这种结构还有一个好处,就是可以使用
count($groups['C'])
轻松地计算以
'C'
开头的标题

输出:

Array
(
    [A] => Array
        (
            [Apple] => http://www.abc.mno/apple/
        )
    [B] => Array
        (
            [Ball] => http://www.abc.mno/ball/
            [Bowling] => http://www.abc.mno/bowling/
            [Builders] => http://www.abc.mno/builders/
        )
    [C] => Array
        (
            [Campaign] => http://www.abc.mno/compain/
            [Correct] => http://www.abc.mno/correct/
        )
    [D] => Array
        (
            [Degree] => http://www.abc.mno/degree/
            [Direct] => http://www.abc.mno/direct/
        )
)
4

你好,尼克,谢谢你的回答。看起来很棒。谢谢你的帮助。我有一个关于小提琴的问题。假设你有一些重音字母。例如,在小提琴中,我将苹果存储为数组中的Àpple。我想知道是否有任何方法,它可以忽略重音字符,并将
À
视为
A
。目前,它正在显示这个� 在小提琴中。@user1950349您可以使用解决方案转换字符,例如使用链接中的解决方案post@user1950349。您可以这样做:@user1950349这是因为它们按照原始数组的顺序放入数组中,并在所有普通字母之后进行排序。只需使用
ksort($groups)
Array
(
    [A] => Array
        (
            [Apple] => http://www.abc.mno/apple/
        )
    [B] => Array
        (
            [Ball] => http://www.abc.mno/ball/
            [Bowling] => http://www.abc.mno/bowling/
            [Builders] => http://www.abc.mno/builders/
        )
    [C] => Array
        (
            [Campaign] => http://www.abc.mno/compain/
            [Correct] => http://www.abc.mno/correct/
        )
    [D] => Array
        (
            [Degree] => http://www.abc.mno/degree/
            [Direct] => http://www.abc.mno/direct/
        )
)
4