我正在尝试开发一个代码,该代码将按升序对文本文件的内容进行排序。我已经阅读了文件的内容,并能够显示文本。 我很难从低到高排序,逐字排序。
我已经尝试过来自php.net的asort,但是无法让代码运行良好。 谢谢。
答案 0 :(得分:0)
试试这个
<?php
$filecontent = file_get_contents('exemple.txt');
$words = preg_split('/[\s,.;":!()?\'\-\[\]]+/', $filecontent, -1, PREG_SPLIT_NO_EMPTY);
$array_lowercase = array_map('strtolower', $words);
array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $words);
foreach($words as $value)
{
echo "$value <br>";
}
?>
答案 1 :(得分:0)
要回答第二个问题,您可以将文本文件读入变量(就像您已经说过的那样),例如。 $ variable,然后使用explode(http://php.net/manual/en/function.explode.php)将每个单词分隔成一个数组:
//$variable is the content from your text file
$output = explode(" ",$variable); //explode the content at each space
//loop through the resulting array and output
for ($counter=0; $counter < count($output); $counter++) {
echo $output[$counter] . "<br/>"; //output screen with a line break after each
} //end for loop
如果您的段落包含您不想输出的逗号等,则可以在爆炸之前替换变量中的那些。
答案 2 :(得分:0)
//Split file by newlines "\n" into an array using explode()
$file = explode("\n",file_get_contents('foo.txt'));
//sort array with sort()
sort($file);
//Build string and display sorted contents.
echo implode("\n<br />",$file);
排序函数需要有一个数组作为参数,确保你的文件在一个数组中。 asort
用于关联数组,因此除非您需要保留数组键,否则可以使用sort
代替。
答案 3 :(得分:0)
$file = "Hello world\ngoodbye.";
$words = preg_split("/\s+/", $file);
$clean_words = preg_replace("/[[:punct:]]+/", "", $words);
foreach ($clean_words as $key => $val) {
echo "words[" . $key . "] = " . $val . "\n";
}
--output:--
words[0] = Hello
words[1] = world
words[2] = goodbye
sort($clean_words, SORT_STRING | SORT_FLAG_CASE);
foreach ($clean_words as $key => $val) {
echo "words[" . $key . "] = " . $val . "\n";
}
--output:--
words[0] = goodbye
words[1] = Hello
words[2] = world