Merge pull request #6238 from cakephp/issue-6224

Fix maxDimensions() for empty/1 dimensional arrays.
This commit is contained in:
José Lorenzo Rodríguez 2015-04-01 09:26:50 +02:00
commit 405e725767
2 changed files with 14 additions and 2 deletions

View file

@ -275,6 +275,14 @@ class HashTest extends CakeTestCase {
* @return void
*/
public function testMaxDimensions() {
$data = array();
$result = Hash::maxDimensions($data);
$this->assertEquals(0, $result);
$data = array('a', 'b');
$result = Hash::maxDimensions($data);
$this->assertEquals(1, $result);
$data = array('1' => '1.1', '2', '3' => array('3.1' => '3.1.1'));
$result = Hash::maxDimensions($data);
$this->assertEquals($result, 2);

View file

@ -763,10 +763,14 @@ class Hash {
$depth = array();
if (is_array($data) && reset($data) !== false) {
foreach ($data as $value) {
$depth[] = self::dimensions((array)$value) + 1;
if (is_array($value)) {
$depth[] = self::dimensions($value) + 1;
} else {
$depth[] = 1;
}
}
}
return max($depth);
return empty($depth) ? 0 : max($depth);
}
/**