Refactoring Set::reverse() and Model::set()

Set::reverse() will now reverse the object to an array that was created in Set::map();
Added testMapReverse() to Set tests.
Removed code in Model::set() that was no longer needed

git-svn-id: https://svn.cakephp.org/repo/branches/1.2.x.x@5373 3807eeeb-6ff5-0310-8944-8be069107fe0
This commit is contained in:
phpnut 2007-07-02 18:36:49 +00:00
parent 382a63651d
commit 3880f9ce13
3 changed files with 91 additions and 15 deletions

View file

@ -682,7 +682,9 @@ class Set extends Object {
for ($i = 0; $i < $count; $i++) {
if ($keys[$i] == '__identity__') {
$key = $object[$keys[$i]];
unset($object[$keys[$i]]);
$object[$key] = $object;
} elseif (is_array($object[$keys[$i]])) {
$keys1 = array_keys($object[$keys[$i]]);
$count1 = count($keys1);
@ -701,11 +703,28 @@ class Set extends Object {
}
}
$return = $object;
if(!empty($merge)) {
$object = array($object, $merge);
$mergeKeys = array_keys($merge);
$objectKeys = array_keys($object);
$count = count($mergeKeys);
$change = $object;
for ($i = 0; $i < $count; $i++) {
foreach ($objectKeys as $key => $value) {
if(is_array($object[$value])) {
if(array_key_exists($mergeKeys[$i], $object[$value])) {
unset($change[$value][$mergeKeys[$i]]);
}
} else {
unset($change[$value]);
}
}
}
$object = Set::pushDiff($change, $merge);
}
return $object;
}
}
}
?>
?>