diff --git a/src/MD_STD_SORT.php b/src/MD_STD_SORT.php index 9461642..44c5303 100644 --- a/src/MD_STD_SORT.php +++ b/src/MD_STD_SORT.php @@ -62,8 +62,14 @@ final class MD_STD_SORT { if ($a[$nameIndex] === $searchValue) return -1; if ($b[$nameIndex] === $searchValue) return 1; - if (stripos($a[$nameIndex], $searchValue) !== false) return -1; - if (stripos($b[$nameIndex], $searchValue) !== false) return 1; + $containsSearchA = stripos($a[$nameIndex], $searchValue); + $containsSearchB = stripos($b[$nameIndex], $searchValue); + + if ($containsSearchA !== false and $containsSearchB !== false) { + return $extSortBy[$a[$sortIndex]] > $extSortBy[$b[$sortIndex]] ? -1 : 1; + } + if ($containsSearchA !== false) return -1; + if ($containsSearchB !== false) return 1; return $extSortBy[$a[$sortIndex]] > $extSortBy[$b[$sortIndex]] ? -1 : 1; };