Domů > PHP > Synchronizace pomocí polí v PHP

Synchronizace pomocí polí v PHP

V tomto zápisku bych rád popsal řešení poměrně časté situace, se kterou se setkáváme v administračních či podobných systémech.

Často je potřeba vyřešit přiřazování položek nějaké skupině (např. zařazování a odebírání uživatelů do pracovních skupin). S tím vyvstává problém synchronizace existující množiny vůči nové množině ID, konkrétně je potřeba přidat do databáze všechna ID nově vybraných uživatelů, zrušit všechna ID odebraných uživatelů a stejné záznamy ponechat beze změny.

Když tento problém zjednodušíme na pole, je vše překvapivě jednoduché, klíčem je použití funkce array_diff():

// pole puvodnich zaznamu v databazi
$original = array(1, 2, 4, 5);
// pole s novym uzivatelskym vstupem
$new = array(1, 3, 5);
// nove pridane polozky (3)
$added = array_diff($new, $original);
// odebrane polozky (2, 4)
$removed = array_diff($original, $new);

Pokud k této práci s poli dopíšeme vrstvu s SQL dotazy (SELECT pro $original, INSERT pro $added a DELETE pro $removed) je vše vyřešeno.

Categories: PHP Tags:
  1. Bez komentářů.
  1. Žádné zpětné odkazy