Set.php 814 B

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace Tools\Utility;
  3. /**
  4. * BC wrapper for 2.x methods until they can be rewritten.
  5. */
  6. class Set {
  7. /**
  8. * Pushes the differences in $array2 onto the end of $array
  9. *
  10. * @param array $array Original array
  11. * @param array $array2 Differences to push
  12. * @return array Combined array
  13. * @link http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::pushDiff
  14. */
  15. public static function pushDiff($array, $array2) {
  16. if (empty($array) && !empty($array2)) {
  17. return $array2;
  18. }
  19. if (!empty($array) && !empty($array2)) {
  20. foreach ($array2 as $key => $value) {
  21. if (!array_key_exists($key, $array)) {
  22. $array[$key] = $value;
  23. } else {
  24. if (is_array($value)) {
  25. $array[$key] = Set::pushDiff($array[$key], $array2[$key]);
  26. }
  27. }
  28. }
  29. }
  30. return $array;
  31. }
  32. }