/** * Sorts the specified list according to the order induced by the specified comparator. All elements in the list * must be mutually comparable. * * @param ArrayList $list * @param Comparator $comparator * @return ArrayList */ public static function sort(ArrayList &$list, Comparator $comparator) { $array = $list->toArray(); usort($array, [$comparator, "compare"]); $list->replace($array); return $list; }
public function testReplace() { $list = new ArrayList(array(array('Key' => 1), $two = (object) array('Key' => 2), (object) array('Key' => 3))); $this->assertEquals(array('Key' => 1), $list[0]); $list->replace(array('Key' => 1), array('Replaced' => 1)); $this->assertEquals(3, count($list)); $this->assertEquals(array('Replaced' => 1), $list[0]); $this->assertEquals($two, $list[1]); $list->replace($two, array('Replaced' => 2)); $this->assertEquals(3, count($list)); $this->assertEquals(array('Replaced' => 2), $list[1]); }