Сортировка массива- удаление дубликатов- как?

Neow15ard

Постоялец
Регистрация
26 Ноя 2008
Сообщения
418
Реакции
190
Запутался с массивами(php 5.2)-
есть массив
$data[0]=(12121,1212,2112,1212,1243121);
$data[1]=(12121,221212,2112,1212,12121);
$data[2]=(12121,1212,324342112,4341212,12121);
Надо удалить все $data[x] в которых значения $data[x][1] не уникальны.
т.е. что осталось только $data[1] либо (2 вариант) $data[0] и $data[1];
И потом соответсвенно их сдвинуть. что бы не было пустых $data[2];
 
Запутался с массивами(php 5.2)-
есть массив
$data[0]=(12121,1212,2112,1212,1243121);
$data[1]=(12121,221212,2112,1212,12121);
$data[2]=(12121,1212,324342112,4341212,12121);
Надо удалить все $data[x] в которых значения $data[x][1] не уникальны.
т.е. что осталось только $data[1] либо (2 вариант) $data[0] и $data[1];
И потом соответсвенно их сдвинуть. что бы не было пустых $data[2];
HTML:
$data[0]=array(12121,1,2112,1212,1243121);
$data[1]=array(12121,2,2112,1212,12121);
$data[2]=array(12121,3,324342112,4341212,12121);
$data[3]=array(121201,4,324342112,4341212,12121);
  /**
  * Уникализация по элементу в мессиве
  * @param <type> $array исходным массив
  * @param <type> $index_element - по которому элементу смотрим уникальность
  * @param <type> $delete - удалять первые (first) или последние (end)
  * @return <type> массив в котором подмассивы с $index_element не повторяются
  */
function unique_by_element($array, $index_element=0, $delete ='first'){
 $unic_arr = array();
 foreach($array as $id_sub_arr=> $sub_arr){
    $e = $sub_arr[$index_element];
    if(isset($unic_arr[$e])){
        if('first' == $delete){
           unset($array[$unic_arr[$e]]); 
            $unic_arr[$e] = $id_sub_arr;
        }else{
            unset($array[$id_sub_arr]);  
        }
        continue;   
    }
     $unic_arr[$e] = $id_sub_arr;
 }   
return $array;
}
/*
Array
(
    [0] => Array
        (
            [0] => 12121
            [1] => 1
            [2] => 2112
            [3] => 1212
            [4] => 1243121
        )
    [3] => Array
        (
            [0] => 121201
            [1] => 4
            [2] => 324342112
            [3] => 4341212
            [4] => 12121
        )
)
print_r($new_arr = unique_by_element($data, 0, 'end'));
*/
/*
Array
(
    [2] => Array
        (
            [0] => 12121
            [1] => 3
            [2] => 324342112
            [3] => 4341212
            [4] => 12121
        )
    [3] => Array
        (
            [0] => 121201
            [1] => 4
            [2] => 324342112
            [3] => 4341212
            [4] => 12121
        )
)
print_r($new_arr = unique_by_element($data));
*/
sort ($new_arr);
print_r( $new_arr);
 
Назад
Сверху