function f_Misc_UpdateArray(&$array, $numerical, $v, $d) { if (!is_array($v)) { if (is_null($v)) { $array = array(); return; } else { $v = array($v => $d); } } foreach ($v as $p => $a) { if ($numerical === true) { // numerical keys if (is_string($p)) { // syntax: item => true/false $i = array_search($p, $array, true); if ($i === false) { if (!is_null($a)) { $array[] = $p; } } else { if (is_null($a)) { array_splice($array, $i, 1); } } } else { // syntax: i => item $i = array_search($a, $array, true); if ($i == false) { $array[] = $a; } } } else { // string keys if (is_null($a)) { unset($array[$p]); } elseif ($numerical === 'frm') { clsTinyButStrong::f_Misc_FormatSave($a, $p); } else { $array[$p] = $a; } } } }