¿Cómo fusionar el valor duplicado en una array multidimensional en PHP?

Para fusionar el valor duplicado en una array multidimensional en PHP, primero, cree una array vacía que contendrá el resultado final. Luego iteramos a través de cada elemento en la array y verificamos su duplicidad comparándolo con otros elementos. Si se encuentra duplicidad, primero combine los elementos duplicados y luego empújelos a la array final; de lo contrario, empújelos directamente a la array final.
El siguiente ejemplo ilustra el enfoque anterior de una manera más significativa:
Ejemplo 1: En este ejemplo, la duplicidad no es más de dos. 
 

PHP

<?php
$arr = array(
    array('Roll'=>43, 'name'=>'Geeeks', 'subject'=>'Course-011'),
    array('Rool'=>38, 'name'=>'Gfg', 'subject'=>'Course-012'),
    array('Rool'=>43, 'name'=>'Geeks', 'subject'=>'Course-011')
);
     
 
// Create an empty array
$myarray = array();
     
// It returns the keys of the array
$keys = array_keys($arr);
 
// Iterating through the multidimensional array
for($i = 0; $i < count($arr); $i++) {
 
    $keys = array_keys($arr);
 
    // Iterating through each element in array
    foreach($arr[$keys[$i]] as $key => $value) {
        $f = 0;
         
        for($j = 0; $j < count($arr); $j++) {
             
            if($i != $j) {
                foreach($arr[$keys[$j]] as $key1 => $value1) {
     
                    // Checking for duplicacy
                    if(($key1 == $key) && ($value == $value1)) {
                        $f = 1;
     
                        // String index where the duplicate
                        // array exists
                        $dup_ind = $j;
                    }
                }
            }
        }
    }
     
    // If duplicate is found
    if($f ==1 ) {
        $temp_arr = array();
        array_push($temp_arr, $arr[$i]);
         
        // Merge both the arrays
        array_push($temp_arr, $arr[$dup_ind]);
         
        // Remove the duplicate element from original array
        unset($arr[$dup_ind]);
         
        // Finally push in the result array
        array_push($myarray, $temp_arr);
    }
    else {
         
        // Directly push in the result array
        array_push($myarray, $arr[$keys[$i]]);
    }
}
 
print_r($myarray);
 
?>

Producción: 
 

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [Roll] => 43
                    [name] => Geeeks
                    [subject] => Course-011
                )

            [1] => Array
                (
                    [Rool] => 43
                    [name] => Geeks
                    [subject] => Course-011
                )

        )

    [1] => Array
        (
            [Rool] => 38
            [name] => Gfg
            [subject] => Course-012
        )

)

Ejemplo 2: En este ejemplo, el campo duplicado es más de dos. 
 

php

<?php
 
$arr = array(
    array('Roll'=>43, 'name'=>'Geeks', 'subject'=>'Course-011'),
    array('Roll'=>38, 'name'=>'GFG', 'subject'=>'Course-011'),
    array('Roll'=>26, 'name'=>'GeeksforGeeks', 'subject'=>'Course-011'),
    array('Roll'=>31, 'name'=>'gfg', 'subject'=>'Course-012')
);
 
foreach($arr as $k => $v) {
    $new_arr[$v['subject']][]=$v;
}
 
print_r($new_arr);
 
?>

Producción: 
 

Array
(
    [Course-011] => Array
        (
            [0] => Array
                (
                    [Roll] => 43
                    [name] => Geeks
                    [subject] => Course-011
                )

            [1] => Array
                (
                    [Roll] => 38
                    [name] => GFG
                    [subject] => Course-011
                )

            [2] => Array
                (
                    [Roll] => 26
                    [name] => GeeksforGeeks
                    [subject] => Course-011
                )

        )

    [Course-012] => Array
        (
            [0] => Array
                (
                    [Roll] => 31
                    [name] => gfg
                    [subject] => Course-012
                )

        )

)

Publicación traducida automáticamente

Artículo escrito por anand27 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *