我正在阅读电子邮件地址的文本文件并仅输出域名(使用@符号)。我需要按字母顺序排列列表,然后输出到屏幕上显示
到目前为止,这是我的代码:
<?php
$file_handle = fopen("file.txt", "r");
while (!feof($file_handle)) {
$line = fgets($file_handle);
$parts = explode("@", $line);
$Id = $parts[count($parts) - 1];
echo "@" . $Id . "<br>";
}
fclose($file_handle);
?>
如何启动排序以按字母顺序排列列表?
答案 0 :(得分:2)
这应该适合你:
(这里我只使用file()
获取文件的每一行。然后我使用array_map()
遍历每一行,我只将域返回到数组$lines
。最后我用sort()
对数组进行排序并打印出来)
<?php
$lines = array_map(function($v){
return "@" . explode("@", $v)[1];
}, file("test.txt"));
sort($lines);
foreach($lines as $line)
echo $line . "<br />";
?>
输入/输出示例:
a.b@x.com
a.c@a.de
e.s@b.cu
@a.de
@b.cu
@x.com