diff --git a/lib/Cake/Test/Case/Utility/HashTest.php b/lib/Cake/Test/Case/Utility/HashTest.php index 3b398d0d5df..17b436239f1 100644 --- a/lib/Cake/Test/Case/Utility/HashTest.php +++ b/lib/Cake/Test/Case/Utility/HashTest.php @@ -928,6 +928,9 @@ public function testExtractUnevenKeys() { * @return void */ public function testSort() { + $result = Hash::sort(array(), '{n}.name', 'asc'); + $this->assertEquals(array(), $result); + $a = array( 0 => array( 'Person' => array('name' => 'Jeff'), diff --git a/lib/Cake/Test/Case/Utility/SetTest.php b/lib/Cake/Test/Case/Utility/SetTest.php index a8ccfef3ec8..4dd79f7ab0f 100644 --- a/lib/Cake/Test/Case/Utility/SetTest.php +++ b/lib/Cake/Test/Case/Utility/SetTest.php @@ -225,6 +225,9 @@ public function testMerge() { * @return void */ public function testSort() { + $result = Set::sort(array(), '{n}.name', 'asc'); + $this->assertEquals(array(), $result); + $a = array( 0 => array('Person' => array('name' => 'Jeff'), 'Friend' => array(array('name' => 'Nate'))), 1 => array('Person' => array('name' => 'Tracy'),'Friend' => array(array('name' => 'Lindsay'))) diff --git a/lib/Cake/Utility/Hash.php b/lib/Cake/Utility/Hash.php index 8f01beb5d74..a3c5cff6b17 100644 --- a/lib/Cake/Utility/Hash.php +++ b/lib/Cake/Utility/Hash.php @@ -730,6 +730,9 @@ public static function apply(array $data, $path, $function) { * @link http://book.cakephp.org/2.0/en/core-utility-libraries/hash.html#Hash::sort */ public static function sort(array $data, $path, $dir, $type = 'regular') { + if (empty($data)) { + return array(); + } $originalKeys = array_keys($data); $numeric = is_numeric(implode('', $originalKeys)); if ($numeric) { diff --git a/lib/Cake/Utility/Set.php b/lib/Cake/Utility/Set.php index f80dde8ea68..10c937f12ff 100644 --- a/lib/Cake/Utility/Set.php +++ b/lib/Cake/Utility/Set.php @@ -956,6 +956,9 @@ protected static function _flatten($results, $key = null) { * @link http://book.cakephp.org/2.0/en/core-utility-libraries/set.html#Set::sort */ public static function sort($data, $path, $dir) { + if (empty($data)) { + return $data; + } $originalKeys = array_keys($data); $numeric = false; if (is_numeric(implode('', $originalKeys))) {