我正在读取电子邮件地址的文本文件并仅输出域(带有@符号)。我需要按字母顺序排列列表,然后输出以显示在屏幕上
这是我到目前为止的代码:
<?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);
?>
如何启动排序以按列表字母顺序排列?
这应该适合您:
(在这里,我只是用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