public static bool usort(Context ctx /*, caller*/, [In, Out] PhpArray array, IPhpCallable compare)
{
if (array == null)
{
//PhpException.ReferenceNull("array");
//return false;
throw new ArgumentNullException();
}
if (!PhpVariable.IsValidCallback(compare)) return false;
// sorts array using callback for comparisons:
array.Sort(new ValueComparer(new PhpUserComparer(ctx, compare), false));
array.ReindexAll();
array.RestartIntrinsicEnumerator();
return true;
}