What are some alternative approaches to sorting strings with numbers in PHP arrays, apart from using array_multisort()?

When sorting strings with numbers in PHP arrays, an alternative approach to using array_multisort() is to use a custom sorting function with usort(). This allows for more flexibility in how the strings are sorted, especially when dealing with mixed alphanumeric values.

// Sample array with strings containing numbers
$strings = ["string1", "string10", "string2", "string20"];

// Custom sorting function to sort strings with numbers
usort($strings, function($a, $b) {
    // Extract numbers from strings
    preg_match('/\d+/', $a, $matchesA);
    preg_match('/\d+/', $b, $matchesB);

    // Compare numbers as integers
    return intval($matchesA[0]) - intval($matchesB[0]);
});

// Output sorted array
print_r($strings);