Romaxa55
19.01.2009, 08:12
Какая ф-ия в пхп али вообще как можно отсортировать список, исключа одинаковые строки и строго зависила от регистра сама сортировка. Пример
xyZ
xYz
Xyz
xyZ
тоесть в нашем случаи xyZ совершенно одинаковые строки. А значит результат будет
xyZ
xYz
Xyz
Вот как бы лучше сделать это все. Нашел перловский пример, но чтот сил не хватает переписать, выкладываю.
#! /usr/bin/perl -w
if( !$ARGV[0] ) {
die "Usage: $0 <file>\n";
}
open FILE, $ARGV[0] or die "Can't open $ARGV[0]: $!\n";
while(<FILE>) {
push @old, $_;
}
close FILE;
unlink $ARGV[0];
for($i=0; $i<@old; $i++) {
push @new, $old[$i];
if( $i ) {
$del=0;
for($j=0; $j<@new-1; $j++) {
if( !$del && $old[$i] eq $new[$j] ) { $del=1; }
}
if( $del ) { pop @new; }
}
}
open FILE, ">$ARGV[0]" or die "Can't open $ARGV[0]: $!\n";
print FILE @new;
close FILE;
Кому не сложно переведите в пхп вид, с меня ++
xyZ
xYz
Xyz
xyZ
тоесть в нашем случаи xyZ совершенно одинаковые строки. А значит результат будет
xyZ
xYz
Xyz
Вот как бы лучше сделать это все. Нашел перловский пример, но чтот сил не хватает переписать, выкладываю.
#! /usr/bin/perl -w
if( !$ARGV[0] ) {
die "Usage: $0 <file>\n";
}
open FILE, $ARGV[0] or die "Can't open $ARGV[0]: $!\n";
while(<FILE>) {
push @old, $_;
}
close FILE;
unlink $ARGV[0];
for($i=0; $i<@old; $i++) {
push @new, $old[$i];
if( $i ) {
$del=0;
for($j=0; $j<@new-1; $j++) {
if( !$del && $old[$i] eq $new[$j] ) { $del=1; }
}
if( $del ) { pop @new; }
}
}
open FILE, ">$ARGV[0]" or die "Can't open $ARGV[0]: $!\n";
print FILE @new;
close FILE;
Кому не сложно переведите в пхп вид, с меня ++