Skip to content
This repository has been archived by the owner on Jan 31, 2020. It is now read-only.

Commit

Permalink
Merge pull request zendframework/zendframework#5641 from stefanotorre…
Browse files Browse the repository at this point in the history
…si/fix/file-prg-collection-inputfiltering

[Hotfix] FilePostRedirectGet plugin and form collections

Conflicts:
	library/Zend/Mvc/Controller/Plugin/FilePostRedirectGet.php
	tests/ZendTest/Mvc/Controller/Plugin/FilePostRedirectGetTest.php
  • Loading branch information
weierophinney committed Mar 3, 2014
209 parents 759b848 + dc63637 + 29ea285 + c9418a6 + fdeb27b + c382628 + ee15e76 + 5f29760 + 714d1a8 + 84b0297 + cbc5f03 + 76361f8 + e7209df + 87630e0 + df43daf + f7d6cbb + 7e2b798 + 3ed1ead + 87505b6 + c229265 + eb61c8f + efcb00e + 0a0842f + b6d0c88 + 7edee62 + 60ea64c + a08bcca + b40ec3e + 63172ed + 448f428 + 92a516a + 5ecbc99 + a2df21b + 4de87f2 + 7c259ec + a22bdcb + 084ad9f + 9414e5a + 489be93 + cb39e7e + 54a28dc + c9c769e + dda791d + 70d382a + 8bbad0e + 9321185 + 7ab35a6 + b93694e + 3ea7087 + 0fe3d3a + bd5e189 + d1cba17 + 8d75392 + 3fb5b55 + 6cb0ccb + 30aa565 + 8409977 + 8074ba0 + 8f92486 + 94860d1 + 05d33c4 + 425826b + f0e91f0 + e31468f + 7d2af87 + 2e4dc80 + 19d128f + 1b9e4b2 + 1c46483 + fdda3f2 + 595fcd1 + 213395c + 8e514a8 + 2f30186 + bb4ed65 + 132d5b6 + 030ff33 + f2f20f3 + a50e133 + 4c554ee + dbfb1b8 + ccab83f + 00b350f + 78945d0 + f0e5f4b + ceb7d8c + 9e124d1 + 3de5912 + b6a974a + 10a6438 + cb6c1e7 + 18afd6c + 3baf1bd + c800904 + f52dcb8 + 126ccb2 + e7d6206 + e2d24ab + ec1abfc + 290ea90 + 9f4ca1b + edaa760 + c4c0c95 + d21f055 + 5b18029 + e6b97af + 010fb36 + 64c7b8d + 636523e + 4cc2cd6 + e34098a + 16367cd + 943c77f + 8226e5b + 0b47726 + 3cd8a03 + cc4782c + 9c653a6 + 656dbe5 + 9bce1ba + 7dc18ca + 861130d + 2d2ffbd + 4f413a5 + 2e1067a + 1d082e4 + e8aeb79 + b562091 + ff2fdc3 + 4aa72c0 + 1bb67ac + cd015c8 + 5e89910 + 0c21258 + dd54faf + 57f9063 + b88ce2e + af68643 + 06cd3b4 + 2c71b71 + ee02c35 + 9456314 + 5a77a7b + e98a077 + 738f2e6 + cb1e63c + 736df07 + d0a0154 + 990523c + 78687de + a5b6e79 + 6e9dfe9 + e201a1c + d9b45ef + 76222ad + 16d67da + 1ab2258 + b81d711 + ed2e9bc + 61efe82 + f353ea5 + 1f02519 + 58c1fe8 + ed502d9 + 2defba6 + 4885013 + 06a8384 + 17d9eed + 3b21b5d + c62101c + 909ef34 + 13d376a + 8a75367 + 98a3cf5 + 270f2c4 + 3038cfa + 1112202 + c8fb359 + 8d37cd0 + 4d868a7 + 555cb91 + 7ac5858 + 8103f1f + 9fe9c96 + a3ecac6 + 10e77c1 + e0d3e13 + 19ad608 + e0d665c + 1a5b402 + 56ae12a + 9073fc1 + 2d5b32f + a8e6198 + 83e8f34 + 30eb247 + 6204c2f + c3855a9 + 543aa17 + f1fa08d + 3750c0c + d0aa8c2 + 9d1f331 + 9c877e4 + ce5f388 + 6963d1a + fab8999 + d3c1fcd + 4f4614d commit baf4da3
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 13 deletions.
14 changes: 7 additions & 7 deletions src/ArrayUtils.php
Expand Up @@ -245,23 +245,23 @@ public static function iteratorToArray($iterator, $recursive = true)
/**
* Merge two arrays together.
*
* If an integer key exists in both arrays, the value from the second array
* will be appended the the first array. If both values are arrays, they
* are merged together, else the value of the second array overwrites the
* one of the first array.
* If an integer key exists in both arrays and preserveNumericKeys is false, the value
* from the second array will be appended to the first array. If both values are arrays, they
* are merged together, else the value of the second array overwrites the one of the first array.
*
* @param array $a
* @param array $b
* @param bool $preserveNumericKeys
* @return array
*/
public static function merge(array $a, array $b)
public static function merge(array $a, array $b, $preserveNumericKeys = false)
{
foreach ($b as $key => $value) {
if (array_key_exists($key, $a)) {
if (is_int($key)) {
if (is_int($key) && !$preserveNumericKeys) {
$a[] = $value;
} elseif (is_array($value) && is_array($a[$key])) {
$a[$key] = static::merge($a[$key], $value);
$a[$key] = static::merge($a[$key], $value, $preserveNumericKeys);
} else {
$a[$key] = $value;
}
Expand Down
61 changes: 55 additions & 6 deletions test/ArrayUtilsTest.php
Expand Up @@ -143,20 +143,67 @@ public static function invalidArrays()
public static function mergeArrays()
{
return array(
'merge-integer-and-string keys' => array(
'merge-integer-and-string-keys' => array(
array(
'foo',
3 => 'bar',
'baz' => 'baz'
3 => 'bar',
'baz' => 'baz',
4 => array(
'a',
1 => 'b',
'c',
),
),
array(
'baz',
4 => array(
'd' => 'd',
),
),
false,
array(
0 => 'foo',
3 => 'bar',
'baz' => 'baz',
4 => 'baz'
4 => array(
'a',
1 => 'b',
'c',
),
5 => 'baz',
6 => array(
'd' => 'd',
),
)
),
'merge-integer-and-string-keys-preserve-numeric' => array(
array(
'foo',
3 => 'bar',
'baz' => 'baz',
4 => array(
'a',
1 => 'b',
'c',
),
),
array(
'baz',
4 => array(
'd' => 'd',
),
),
true,
array(
0 => 'baz',
3 => 'bar',
'baz' => 'baz',
4 => array(
'a',
1 => 'b',
'c',
'd' => 'd',
),
)
),
'merge-arrays-recursively' => array(
Expand All @@ -170,6 +217,7 @@ public static function mergeArrays()
'baz'
)
),
false,
array(
'foo' => array(
0 => 'baz',
Expand All @@ -186,6 +234,7 @@ public static function mergeArrays()
'foo' => 'baz',
'bar' => 'bat'
),
false,
array(
'foo' => 'baz',
'bar' => 'bat'
Expand Down Expand Up @@ -340,9 +389,9 @@ public function testEmptyArrayReturnsFalse()
/**
* @dataProvider mergeArrays
*/
public function testMerge($a, $b, $expected)
public function testMerge($a, $b, $preserveNumericKeys, $expected)
{
$this->assertEquals($expected, ArrayUtils::merge($a, $b));
$this->assertEquals($expected, ArrayUtils::merge($a, $b, $preserveNumericKeys));
}

/**
Expand Down

0 comments on commit baf4da3

Please sign in to comment.