我有一个 html 表单,允许用户输入用户/电子邮件、名字和姓氏以及评论。我确实将用户输入写入文本文件,并且显示成功。在对文本文件中的所有用户信息进行排序时遇到问题。
我正在尝试按名字对文本文件的内容进行排序。我的 txt 内容如下所示:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
cccc
bbbbbb
Bob Lebeau [email protected] fsdfsd
文本文件包含几个用户名/电子邮件、名字、姓氏和评论块。我使用sort()来输出升序排序,但是它不起作用。
有人可以帮我按名字按升序对文件内容进行排序吗?
function writeText(){
global $filename,$fName,$lName,$acc,$comments,$input,$arr;
echo "<br>Done. Inputs written to Guest Book.txt<br>";
$fileHandler=fopen($filename,"ab");
flock($fileHandler,LOCK_EX);//Writing lock
fwrite($fileHandler,$input);//accept $filename
if(file_exists($filename)){
$fileHandler = fopen($filename,"r");
while(!feof($fileHandler)){
//read line by line
echo fgets($fileHandler)."<br>";
echo fgetss($fileHandler,4096)."<br>";
}
fclose($fileHandler);
$text=file_get_contents($filename);
$textArr=explode("\n",$text);
foreach ($textArr as $texts) {
if($texts)
$new_arr[] = explode("\n", $texts);
}
function sort_arr($a, $b)
{
return strcmp($a[0], $b[0]);
// 0 index will be first name
}
usort($new_arr, "sort_arr");
foreach($new_arr as $v){
echo implode("\n",$v)."\n";
}
print_r($textArr);
//display result
echo "<br>Done. Contents have been sorted<br>";
}else{
echo "<br>File dosen't exist";
}
if(empty($fName)&&empty($lName)&&empty($acc)&&empty($comments)){
echo "<br>Nothing to display";
}
我的建议是区分文件的行和列。在文件 fname、lname、acc 和注释中写入时,应以\t
. 新数据将以\n
;分隔
因此,像这样存储后,您可以遍历您的数据,存储在数组中,然后按您的名字对该数组进行排序
$input=$fName."\t".$lName."\t".$acc."\t".$comments."\n";
$filename="temp/Guest Book.txt";
function writeText(){
global $filename,$fName,$lName,$acc,$comments,$input,$arr;
echo "<br>Done. Inputs written to Guest Book.txt";
$fileHandler=fopen($filename,"ab");
flock($fileHandler,LOCK_EX);//Writing lock
fwrite($fileHandler,$input);//accept $filename
// flock($fileHandler,LOCK_UN);//Unlock
if(file_exists($filename)){
$fileHandler = fopen($filename,"r");
while(!feof($fileHandler)){
//read line by line
echo fgets($fileHandler)."<br>";
echo fgetss($fileHandler,4096)."<br>";
}
fclose($fileHandler);
$text=file_get_contents($filename);
$textArr=explode("\n",$text);
foreach ($textArr as $texts) {
if($texts)
$new_arr[] = explode("\t", $texts);
}
function sort_arr($a, $b)
{
return strcmp($a[0], $b[0]); // 0 index will be first name
}
usort($new_arr, "sort_arr");
//var_dump($new_arr); //display result
foreach($new_arr as $v){
echo $v[0]." ".$v[1]." ".$v[2]." ".$v[3]."<br>";
}
echo "<br>Done. Contents have been sorted<br>";
}else{
echo "<br>File dosen't exist";
}
if(empty($fName)&&empty($lName)&&empty($acc)&&empty($comments)){
echo "<br>Nothing to display";
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句