. */ require_once('SortTransform.php'); class NaturalSortByMultiField extends SortTransform { var $fields = array(); // todo: replace with splat operator when PHP 5.6 is minimal version function __construct($fieldName0, $fieldName1 = null, $fieldName2 = null, $fieldName3 = null, $fieldName4 = null, $fieldName5 = null, $fieldName6 = null, $fieldName7 = null, $fieldName8 = null, $fieldName9 = null) { $this->fields[0] = $fieldName0; $this->fields[1] = $fieldName1; $this->fields[2] = $fieldName2; $this->fields[3] = $fieldName3; $this->fields[4] = $fieldName4; $this->fields[5] = $fieldName5; $this->fields[6] = $fieldName6; $this->fields[7] = $fieldName7; $this->fields[8] = $fieldName8; $this->fields[9] = $fieldName9; } public function sort($a, $b) { $result = 0; for ($idx = 0; $idx <= 9; ++$idx) { if ($result == 0 && $this->fields[$idx]) { $result = strnatcmp($a[$this->fields[$idx]], $b[$this->fields[$idx]]); if ($result != 0) { break; } } } return $result; } }