我试图从一个文件中列出目录。但我只希望列表包含唯一的条目,也就是说,只有回显一次,没有重复。
示例:从这个日志文件:
inactive : [2007-04-01 08:42:21] "home/club/member" 210.00 "r-200"
inactive : [2008-08-01 05:02:20] "home/club/staff" 25.00 "r-200"
active : [2010-08-11 10:12:20] "home/club/member" 210.00 "r-500"
inactive : [2010-01-02 11:12:33] "home/premier/member" 250.00 "r-200"
active : [2013-03-04 10:02:30] "home/premier/member" 250.00 "r-800"
active : [2011-09-14 15:02:55] "home/premier/member" 250.00 "r-100"我想回显目录列表,但没有重复目录:
家庭/俱乐部/工作人员
家庭/俱乐部/成员
家庭/总理/成员
我使用了foreach循环来遍历数组,但是我不知道如何将每个值与数组中的每个项进行比较,然后只输出一次相同的项。
foreach($listofDir as $value)
{
echo "<p>" . $value . "</p>";
}发布于 2015-06-14 11:04:14
这应该适用于你:
只需将文件放入数组中,然后从每一行中获取路径即可。
<?php
$lines = file("test.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
$directorys = array_unique(array_map(function($v){
preg_match("/.*? : \[.*?\] \"(.*?)\"/", $v, $m);
return $m[1];
}, $lines));
print_r($directorys);
?>产出:
Array
(
[0] => home/club/member
[1] => home/club/staff
[3] => home/premier/member
)https://stackoverflow.com/questions/30828492
复制相似问题