Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Ребята нужна помощ. (https://forum.antichat.xyz/showthread.php?t=102009)

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;

Кому не сложно переведите в пхп вид, с меня ++

Romaxa55 19.01.2009 08:17

Дополняю...Смысл в том что нужный результь я получаю
echo $result;
но переменая не отортирована, вот бы ее еще отсортировать и уже вывестив $result2

kenshin 19.01.2009 11:58

Может попробывать регуляркой в цикле искать совпадения строго с шаблоном,или проще например stripos или чтото подобное приминить опятьже в цикле например.

kenshin 19.01.2009 12:02

add:
PHP код:

$text file('text.txt');
foreach(
Создаем цикл){
$search preg_match_all("#$who#",$text);
echo 
$search[0];


чтото вроде,но можно в 5 раз проще
Ой,ошибся,
проще прег_репласе увсе изменить,а затем то что получилось записать в файлик.ТОесть щем шаблон,заменяем на '' делаем трим,м пишем в файл.

prescott 19.01.2009 12:21

PHP код:

$arr=array("xxx""Yyy","TTT""Yyy");
$arr1=array();

foreach (
$arr as $k=>$z) {
if (!
in_array($z$arr1)) $arr1[]=$z;
}

sort($arr1); 

Как то так

Gifts 19.01.2009 13:10

Romaxa55
PHP код:

function in_iarray($str$a){
foreach(
$a as $v){
if(
strcasecmp($str$v)==0){return true;}
}
return 
false;
}

function 
array_iunique($a){
$n = array();
foreach(
$a as $k=>$v){
if(!
in_iarray($v$n)){$n[$k]=$v;}
}
return 
$n;
}

$arr=array("xxx""Yyy","TTT""YYy");
$arr=array_iunique($arr);
usort($arr,'strcasecmp');
print_r($arr); 


nerezus 19.01.2009 14:29

ПРивести к lower case, удалить повторы. 3 стандартных функции.

P.S. помощ - это самец помощи?

Romaxa55 19.01.2009 14:52

Сейчас попробуем отпишусь как получится что нить =) спасиб.. как сделаю с меня ++


Время: 07:21