Fixed bug #11239: typolink addQueryString.exclude does not support arrays, pre-patch...
authorChristian Kuhn <lolli@schwarzbu.ch>
Wed, 24 Mar 2010 23:11:39 +0000 (23:11 +0000)
committerChristian Kuhn <lolli@schwarzbu.ch>
Wed, 24 Mar 2010 23:11:39 +0000 (23:11 +0000)
git-svn-id: https://svn.typo3.org/TYPO3v4/Core/trunk@7156 709f56b5-9817-0410-a4d7-c38de5d9e867

ChangeLog
t3lib/class.t3lib_div.php

index cbf5277..8dd1166 100755 (executable)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,6 @@
-2010-03-24  Christian Kuhn  <lolli@schwarzbu.ch>
+2010-03-25  Christian Kuhn  <lolli@schwarzbu.ch>
 
+       * Fixed bug #11239: typolink addQueryString.exclude does not support arrays, pre-patch to add t3lib_div::arrayDiffAssocRecursive()
        * Added feature #9289: Missing index for deleting outdated session data in fe_session_data
        * Fixed bug #9769: Organisation in mail header should be Organization
 
index e8dc600..40518fd 100644 (file)
@@ -1998,6 +1998,29 @@ final class t3lib_div {
        }
 
        /**
+        * Filters keys off from first array that also exist in second array. Comparision is done by keys.
+        * This method is a recursive version of php array_diff_assoc()
+        *
+        * @param       array           Source array
+        * @param       array           Reduce source array by this array
+        * @return      array           Source array reduced by keys also present in second array
+        */
+       public static function arrayDiffAssocRecursive(array $array1, array $array2) {
+               $differenceArray = array();
+               foreach ($array1 as $key => $value) {
+                       if (!array_key_exists($key, $array2)) {
+                               $differenceArray[$key] = $value;
+                       } elseif (is_array($value)) {
+                               if (is_array($array2[$key])) {
+                                       $differenceArray[$key] = t3lib_div::arrayDiffAssocRecursive($value, $array2[$key]);
+                               }
+                       }
+               }
+
+               return $differenceArray;
+       }
+
+       /**
         * Takes a row and returns a CSV string of the values with $delim (default is ,) and $quote (default is ") as separator chars.
         * Usage: 5
         *