0

所以,我正在自学 php,我设法找到了一些非常基本的编码问题来帮助练习。我坚持的那个似乎有一个简单的解决方案。我正在使用上一个问题(条目序列创建)中的代码并将其转换为键序列创建。基本上,代码需要读入一个文件,按照列表的顺序找到一个键值所属的位置,然后在其尊重的位置插入记录。

<?php
//read current file
$studentArray = file("student.txt"); 
echo "Create Key Sequence Student File\n";
echo "Enter ID: ";
$id = rtrim(fgets(STDIN));
echo "Enter FN: ";
$fn = rtrim(fgets(STDIN));
echo "Enter LN: ";
$ln = rtrim(fgets(STDIN));
echo "Enter Major: ";
$maj = rtrim(fgets(STDIN));
echo "Enter Credit Hours: ";
$cHours = rtrim(fgets(STDIN));
//put them in a string
$studentString = "$id".':'."$fn".':'."$ln".':'."$maj".':'."$cHours\n";
//add the string to the array and write array to file
$studentArray[] = $studentString;  
$studentString = implode("",$studentArray);
file_put_contents("student.txt",$studentString);
?>

我不知道该怎么做。我发现的文本不包含任何关于 Key Sequence Create 公式的内容

10000:Bill:Smith:CPSC:34
10010:Jan:Wilson:CPSC:0
10020:Sue:Sweet:ENGR:231
10030:Li:Chan:BIOL:64
10040:Luis:Gonzales:MATH:90

是我们正在读取的值的内容。我们使用的键是 10015(值 id)。代码应该能够读取列表并确定 10015 适合的位置,然后相应地插入来自 STDIN 的信息。

4

1 回答 1

0

为什么要搜索它的位置?只需插入和排序:

$studentString = "$id".':'."$fn".':'."$ln".':'."$maj".':'."$cHours\n";
$studentArray[] = $studentString;  
sort($studentArray);
file_put_contents("student.txt",$studentArray);

此外,不需要implode(),因为file_put_contents()将为您执行此操作。

于 2015-10-26T14:48:03.843 回答