Db::sortBy() 

\nn\t3::Db()->sortBy($objectArray, $fieldName = 'uid', $uidList = []); 

Sortiert Ergebnisse eines Queries nach einem Array und bestimmten Feld. Löst das Problem, dass eine ->in()-Query die Ergebnisse nicht in der Reihenfolge der übergebenen IDs liefert. Beispiel: | $query->matching($query->in('uid', [3,1,2])); kommt nicht zwingend in der Reihenfolge [3,1,2] zurück.

$insertArr = \nn\t3::Db()->sortBy( $storageOrArray, 'uid', [2,1,5]);
Copied!
@param mixed $objectArray
@param string $fieldName
@param array $uidList
@return array

Source Code 

public function sortBy ( $objectArray, $fieldName = 'uid', $uidList = [] )
{
	if (method_exists( $objectArray, 'toArray')) {
		$objectArray = $objectArray->toArray();
	}
	usort( $objectArray, function ($a, $b) use ( $uidList, $fieldName ) {
		$p1 = array_search( \nn\t3::Obj()->accessSingleProperty($a, $fieldName), $uidList );
		$p2 = array_search( \nn\t3::Obj()->accessSingleProperty($b, $fieldName), $uidList );
		return $p1 > $p2 ? 1 : -1;
	});
	return $objectArray;
}
Copied!