我有一大堆服务器名称。有些名字包含fqdn,有些则没有。
单个字符串的列表如下所示:
我想分析一组像上面这样的单个字符串并获得4个结果:
基本上,如果我有一个服务器的多个条目,我想保留较长的条目(包括fqdn)。如果服务器的条目没有包含fqdn,我想只保留服务器名称。我不希望我的结果集中有任何重复项。任何建议都会得到解决。
答案 0 :(得分:0)
我想你将列表作为PHP中的值数组。你如何解决它是通过使用rsort。第一个元素是一个kepper,然后在你的累加器中的最后一个元素之后删除每个元素。为了按字母顺序排列,您可以在通过array_reduce运行结果后对结果进行排序。
答案 1 :(得分:0)
给我一个去,为我工作
<?php
$test = array();
$test[]="serverA";
$test[]="serverA.something.com";
$test[]="serverA";
$test[]="serverB";
$test[]="serverB.something.com";
$test[]="serverC";
$test[]="serverD.something.com";
sort($test);
$final = array();
$temp = "#";
for($i=0,$count = count($test);$i<$count;$i++){
if(substr( $test[$i], 0, strlen($temp) ) == $temp)
$temp = $test[$i];
else {
$final[] = $temp;
$temp = $test[$i];
}
}
//unset first
unset($final[0]);
//add in last
$final[] = $temp;
var_dump($final);
?>
给了我这个
array
1 => string 'serverA.something.com' (length=21)
2 => string 'serverB.something.com' (length=21)
3 => string 'serverC' (length=7)
4 => string 'serverD.something.com' (length=21)