如果您不想使用正则表达式,这是解决方案之一。
<?php
$movie[0]='Amber';
$movie[1]='babar';
$movie[2]='Aviator';
$movie[3]='Caty boy';
function startsWith($haystack, $needle)
{
return !strncmp($haystack, $needle, strlen($needle));
}
foreach (range('a', 'z') as $i){
echo '<h1>'.strtoupper($i).'</h1>';
foreach($movie as $key){
if(startsWith(strtolower($key),$i)){
echo '<li>'.$key.'</li>';
}
}
}
?>
上面的输出将是:
A
Amber
Aviator
B
Babar
C
Caty boy
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
当然,使用 ORDER BY SQL 查询从数据库中填充您的 $movie 数组。那么 $movie 数组可以是这种格式
Title - (Year)
您在标题之后添加的内容 - 年份或任何其他细节不会有所不同。条件是您的字符串应以标题开头。所以即使你错过了格式,例如:
$movie[0]='Titanic';
$movie[1]='Hulk (2009)';
该函数仍应按照您在问题陈述中描述的方式对其进行排序。希望能帮助到你。