¿Cómo combinar dos matrices sin valores duplicados en php?

Tengo dos matrices: 1. cada objeto aquí es una fila recuperada de la base de datos.

array 1 => object(stdClass)[41] public 'id' => string '1' (length=1) public 'class_id' => string '25' (length=2) public 'section_id' => string '2' (length=1) public 'student_id' => string '1' (length=1) public 'date' => string '2011-11-27' (length=10) public 'attendance' => string 'present' (length=7) 2 => object(stdClass)[41] public 'id' => string '1' (length=1) public 'class_id' => string '25' (length=2) public 'section_id' => string '2' (length=1) public 'student_id' => string '3' (length=1) public 'date' => string '2011-11-27' (length=10) public 'attendance' => string 'present' (length=7) 

2. Otra matriz es de mi forma y esto se ve así.

 array 0 => array 'class_id' => string '25' (length=2) 'section_id' => string '2' (length=1) 'student_id' => int 1 'date' => string '2011-11-27 00:00:00' (length=19) 'attendance' => string 'present' (length=7) 1 => array 'class_id' => string '25' (length=2) 'section_id' => string '2' (length=1) 'student_id' => int 2 'date' => string '2011-11-27 00:00:00' (length=19) 'attendance' => string 'present' (length=7) 

Aquí lo que quiero hacer es:
– Compara estos dos y comprueba si la clave student_id y la fecha ya están en la base de datos o no.
– y a partir de la segunda matriz que proviene de los datos del formulario, elimine los duplicados e inserte los datos.
El resultado final debería ser:

 array 0 => array 'class_id' => string '25' (length=2) 'section_id' => string '2' (length=1) 'student_id' => int 2 'date' => string '2011-11-27 00:00:00' (length=19) 'attendance' => string 'present' (length=7) 

Tratar:

 $ c = [array_merge] [1] ($ a, $ b);

 var_dump ([array_unique] [1] ($ c));

Espero eso ayude

Como complemento de la ventana del usuario de demostración, estableciendo el indicador SORT REGULAR como argumento resolvió mi problema de “matriz de conversión a cadena”:

 $c = array_merge($a,$b); $d = array_unique($c, SORT_REGULAR); var_dump($d); 

Como sus matrices (base de datos y formulario) NO son exactamente iguales, no puede llamar a las funciones array_merge o array_unique. Deberá iterar las filas de la base de datos una vez y almacenar los valores devueltos en una matriz separada basada en valores clave (Mapa). Y luego itere a través de su matriz devuelta por el formulario y busque la matriz previamente preparada para la clave y, si la encuentra, simplemente elimine ese elemento de la matriz devuelta. Considere seguir el siguiente fragmento de código:

 // assuming database returned rows are in $rows array // assuming form returned records are in $forms array $dbArray = array(); foreach($rows as $r) { // need to convert string to int and string to date to match data in both sets $dbArray[ array( (int) $r->student_id, strtotime($r->date) ) ] = 1; } $diffArray = array(); foreach($forms as $f) { $key = array( $f['student_id'], strtotime($f['date']) ); if (!array_key_exists($key, $dbArray)) $diffArray[] = $f; } // now $diffArray will have the final result you're looking for