<?php
class SortMadness {
private $data;
public function __construct($data) {
$this->data = $data;
}
public function __toString() {
//$data = array_map(function($item) { return $item; }, $this->data);
$data = array_merge($this->data);
sort($data);
$rs = implode('-', $data);
echo $rs."\n";
return $rs;
}
}
// expected order is ['a','b'],['c','b','a'],['c','b']
$a = [
new SortMadness(['c','b']),
new SortMadness(['c','b','a']),
new SortMadness(['a','b']),
];
sort($a);
print_r($a);
usort($a, 'strcmp');
/*
usort($a, function(ToStringMadness $itemA, ToStringMadness $itemB) {
return strcmp((string)$itemA, (string)$itemB);
});
*/
print_r($a);
preferences:
55.7 ms | 402 KiB | 5 Q