有序列表组号,符号

时间:2013-05-31 06:50:00

标签: php

我目前有代码显示如下数据:

1  
11 Title Here

2  
21 Guns

A  
Awesome

使用此:

    foreach($animes as $currentAnime){
        $thisLetter = strtoupper($currentAnime->title[0]);
        $sorted[$thisLetter][] = array('title' => $currentAnime->title, 'id' => $currentAnime->id);
        unset($thisLetter);
    }

如何将所有数字分组到#,将所有符号分组到~

像这样:

#
11 Title Here
21 Guns

~
.ahaha

A
Awesome

感谢您的建议。

1 个答案:

答案 0 :(得分:0)

如果这是一个数字,您可以与is_numeric()核对,如果这是一个符号,则可以preg_match()

foreach($animes as $currentAnime){
    $thisLetter = strtoupper($currentAnime->title[0]);
    if(is_numeric($thisLetter))
    {
     $sorted['#'][] = array('title' => $currentAnime->title, 'id' => $currentAnime->id);
    }
    else if(preg_match('/[^a-zA-Z0-9]+/', $thisLetter))
    {
          $sorted['~'][] = array('title' => $currentAnime->title, 'id' => $currentAnime->id);   
    }
    else
    {
          $sorted[$thisLetter][] = array('title' => $currentAnime->title, 'id' => $currentAnime->id);
    }
    unset($thisLetter);
}

[^a-zA-Z0-9]+ - 如果没有az字母也没有字母,也没有AZ字符也可以添加0-9位可以添加不适合的字符你不准确哪些字符适合所以我添加了到正则表达式的基础知识。此外,您还可以检查是否只有[a-zA-Z]+的字母,并将其添加到字符串组,最后“else”语句将用于非数字字符串的字符串。