ФорумПрограммированиеPHP для идиотов → как удалить повторные строки в двухмерном массиве

как удалить повторные строки в двухмерном массиве

  • vanderson

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 25 декабря 2008 г. 21:41

    вот кусок массива:

    $array[0]=(100,60,40)
    $array[0]=(100,60,50)
    $array[0]=(100,60,35)
    $array[0]=(100,99,35)
    $array[0]=(100,50,40)
    $array[0]=(100,40,35)
    $array[0]=(100,99,60)
    $array[0]=(100,99,40)
    $array[0]=(100,99,50)
    $array[0]=(100,99,35)
    $array[0]=(100,60,50)
    $array[0]=(100,50,40)
    $array[0]=(100,99,50)
    $array[0]=(100,50,35)
    $array[0]=(100,60,35)
    $array[0]=(100,40,35)
    $array[0]=(100,99,35)
    $array[0]=(100,50,35)
    $array[0]=(100,60,40)
    $array[0]=(100,99,60)
    $array[0]=(100,60,50)
    $array[0]=(100,60,35)
    $array[0]=(100,60,40)

    хочу удалить дублированные строки и сделать вот так
    $new_array[0]=(100,60,40)
    $new_array[1]=(100,99,60)
    $new_array[2]=(100,60,35)
    $new_array[3]=(100,99,40)
    $new_array[4]=(100,50,40)
    $new_array[5]=(100,40,35)
    $new_array[6]=(100,99,35)
    $new_array[7]=(100,60,50)
    $new_array[8]=(100,99,50)

    пробовал это
    
    $r=0;$z=0;
    while($r<$s) {
    	$x=0;
    	while($x<$s) {
    		if ($array[$x+1] != $array[$r]) {
                             $new_array[$z]=$array[$x+1];
                               $z++;
                               }
                            $x++;
    			}
    			$r++;
    	}
    }
    но это бред( помогите .. может есть какаято функция типа array_unique или подскажите алгоритм.. спасибо заранее
  • AlexB

    Сообщения: 4306 Репутация: N Группа: в ухо

    Spritz 25 декабря 2008 г. 22:09, спустя 27 минут 51 секунду

    Если я правильно понял из названия темы, то речь идет о вложенных массивах. Тогда:

    
    function arrayUnique($myArray) 
    { 
        if(!is_array($myArray)) 
               return $myArray; 
    
        foreach ($myArray as &$myvalue){ 
            $myvalue=serialize($myvalue); 
        } 
    
        $myArray=array_unique($myArray); 
    
        foreach ($myArray as &$myvalue){ 
            $myvalue=unserialize($myvalue); 
        } 
    
        return $myArray; 
    
    } 
    


    Между прочим, взято из комментов мануала
    http://ru2.php.net/manual/ru/function.array-unique.php
  • vanderson

    Сообщения: 8 Репутация: N Группа: Кто попало

    Spritz 25 декабря 2008 г. 22:25, спустя 16 минут 20 секунд

    ага спасибо большое.. просто я еще нюб в этом деле)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!