public function testSortAssoc() { $arr = new ArrayObject(['b' => 'bval', 'a' => 'aval', 'c' => 'cval']); $arr->sortAssoc(); $this->assertEquals(['a' => 'aval', 'b' => 'bval', 'c' => 'cval'], $arr->toArray()); $arr = new ArrayObject(['b' => 'bval', 'a' => 'aval', 'c' => 'cval']); $arr->sortAssoc(function ($a, $b) { if ($a == $b) { return 0; } return $a < $b ? -1 : 1; }); $this->assertEquals(['a' => 'aval', 'b' => 'bval', 'c' => 'cval'], $arr->toArray()); $arr = new ArrayObject(['b' => new Item('bval'), 'a' => new Item('aval'), 'c' => new Item('cval')]); $arr->sortAssoc(new ComparableComparator()); $this->assertEquals(['a' => 'aval', 'b' => 'bval', 'c' => 'cval'], $arr->map(function ($elem) { return $elem->getContent(); })->toArray()); }