嘿伙计们,我目前有一个看起来像这样的文本文件
加利福尼亚州洛杉矶 西雅图,华盛顿 底特律,密歇根州
城市和州以逗号分隔。我知道如何按城市排序文本文件,但我不知道如何按州对文本文件进行排序。
有什么建议吗?
我试过这个
<?php
$file = file("states.txt");
sort($file);
for($i=0; $i<count($file); $i++) {
$states = explode(",", $file[$i]);
echo $states[0], $states[1],"<br />";
}
?>
答案 0 :(得分:1)
我们假设您的文字文件名为file
。这是使用usort
,strpos
,strcmp
和{{ 1}}功能:
$cities = file("cities.txt"); // reading file contents as array of strings(lines)
usort($cities, function($a, $b){ // sorting by the first character of the state name
return strcmp($a[(strpos($a, ",") + 2)], $b[(strpos($b, ",") + 2)]);
});
//file_put_contents("cities.txt", implode("", $cities)); // for saving sorted file contents
print_r($cities);
输出(作为数组):
Array
(
[0] => Los Angeles, California
[1] => Detroit, Michigan
[2] => Seattle, Washington
)