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 ) ) )