Ребята нужна помощ.

Discussion in 'PHP' started by Romaxa55, 19 Jan 2009.

  1. Romaxa55

    Romaxa55 Banned

    Joined:
    19 Oct 2005
    Messages:
    144
    Likes Received:
    30
    Reputations:
    4
    Какая ф-ия в пхп али вообще как можно отсортировать список, исключа одинаковые строки и строго зависила от регистра сама сортировка. Пример

    xyZ
    xYz
    Xyz
    xyZ
    тоесть в нашем случаи xyZ совершенно одинаковые строки. А значит результат будет
    xyZ
    xYz
    Xyz
    Вот как бы лучше сделать это все. Нашел перловский пример, но чтот сил не хватает переписать, выкладываю.

    Code:
    #! /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;
    Кому не сложно переведите в пхп вид, с меня ++
     
    #1 Romaxa55, 19 Jan 2009
    Last edited: 19 Jan 2009
    2 people like this.
  2. Romaxa55

    Romaxa55 Banned

    Joined:
    19 Oct 2005
    Messages:
    144
    Likes Received:
    30
    Reputations:
    4
    Дополняю...Смысл в том что нужный результь я получаю
    echo $result;
    но переменая не отортирована, вот бы ее еще отсортировать и уже вывестив $result2
     
  3. kenshin

    kenshin New Member

    Joined:
    6 Jan 2009
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    Может попробывать регуляркой в цикле искать совпадения строго с шаблоном,или проще например stripos или чтото подобное приминить опятьже в цикле например.
     
  4. kenshin

    kenshin New Member

    Joined:
    6 Jan 2009
    Messages:
    2
    Likes Received:
    1
    Reputations:
    0
    add:
    PHP:
    $text file('text.txt');
    foreach(
    Создаем цикл){
    $search preg_match_all("#$who#",$text);
    echo 
    $search[0];
    }
    чтото вроде,но можно в 5 раз проще
    Ой,ошибся,
    проще прег_репласе увсе изменить,а затем то что получилось записать в файлик.ТОесть щем шаблон,заменяем на '' делаем трим,м пишем в файл.
     
    #4 kenshin, 19 Jan 2009
    Last edited: 19 Jan 2009
    1 person likes this.
  5. prescott

    prescott Elder - Старейшина

    Joined:
    28 Jul 2008
    Messages:
    132
    Likes Received:
    43
    Reputations:
    5
    PHP:
    $arr=array("xxx""Yyy","TTT""Yyy");
    $arr1=array();

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

    sort($arr1);
    Как то так
     
    1 person likes this.
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    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);
     
    _________________________
    1 person likes this.
  7. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    ПРивести к lower case, удалить повторы. 3 стандартных функции.

    P.S. помощ - это самец помощи?
     
    2 people like this.
  8. Romaxa55

    Romaxa55 Banned

    Joined:
    19 Oct 2005
    Messages:
    144
    Likes Received:
    30
    Reputations:
    4
    Сейчас попробуем отпишусь как получится что нить =) спасиб.. как сделаю с меня ++