如何使用PHP在字母表下显示数组?

TK1*_*123 7 php

我有一个数组已按字母顺序包含所有值:

Alligator
Alpha
Bear
Bees
Banana
Cat
Cougar
Run Code Online (Sandbox Code Playgroud)

现在我只想列出每个以上面开头的第一个字母,如下所示:

A
---

Alligator
Alpha

B
---

Bear
Bees
Banana

C
---

Cat
Cougar

etc...
Run Code Online (Sandbox Code Playgroud)

如何才能做到这一点?

Art*_*ct2 23

解决方案是将变量保存在先前打印的单词的第一个字母中,如:

$previous = null;
foreach($array as $value) {
    $firstLetter = substr($value, 0, 1);
    if($previous !== $firstLetter) echo "\n".$firstLetter."\n---\n\n";
    $previous = $firstLetter;

    echo $value."\n";
}
Run Code Online (Sandbox Code Playgroud)

注意:如果某些条目以小写字母开头而其他条目以大写字母开头,请使用strcasecmp测试中的函数而不是!==.


小智 8

这是另一个简单的解决方案:-

$result = array();
foreach ($list as $item) {
    $firstLetter = substr($item, 0, 1);
    $result[$firstLetter][] = $item;
}

echo "<pre>"; print_r($result);
Run Code Online (Sandbox Code Playgroud)

输出 :-

Array (
[A] => Array
    (
        [0] => Alligator
        [1] => Alpha
    )

[B] => Array
    (
        [0] => Bear
        [1] => Bees
        [2] => Banana
    )

[C] => Array
    (
        [0] => Cat
        [1] => Cougar
    )
 )
Run Code Online (Sandbox Code Playgroud)