按升序对文本文件的内容进行排序

时间:2013-04-25 10:22:29

标签: php sorting

我正在尝试开发一个代码,该代码将按升序对文本文件的内容进行排序。我已经阅读了文件的内容,并能够显示文本。 我很难从低到高排序,逐字排序。

我已经尝试过来自php.net的asort,但是无法让代码运行良好。 谢谢。

4 个答案:

答案 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