Buen día jóvenes,
Estoy intentando comparar dos arreglos para decidir si hago un insert, un update o un delete.
El primer arreglo contiene los datos "frescos", el otro es producto de una consulta a la tabla donde tengo que almacenar.
Por el momento lo estoy intentando así:
$update = array_intersect($post, $database);
$insert = array_diff($post, $database);
$delete = array_diff($database, $post);
Valido, por ejemplo, si $update no esta vacío, actualizo.
Hasta aquí todo bien, mis problemas empiezan cuando todo esto lo tengo que hacer dentro de un ciclo porque todo el detalle viene en el post. Entonces uso el arreglo 1 (post) como base para el ciclo, es decir:
foreach($post as $data)
{
if(!empty($update)){
Hacer el insert
}
}
Esto falla cuando en la misma secuencia tengo que ejecutar las tres tareas, ya que en ese caso el count del arreglo no coincide con el número de veces que tengo que hacer cada cosa.
Para usar un ejemplo mas concreto:
Post = A,B,C,D
Data = B,C,E
Recorre el ciclo 4 veces, pero tengo que actualizar 2 veces, insertar 2 veces y borrar 1 vez.
Espero que mi explicación no este muy confusa y sobre todo que alguien me de un poco de luz. No está de más decir que estoy un poco desesperado ya.
Gracias.