1. <?php
  2. /**
  3. * Sorts configuration values for sandbox usage with graceful failure handling.
  4. *
  5. * @param array $config_array An array of configuration values.
  6. * @return array|null Sorted array of configuration values, or null on failure.
  7. */
  8. function sortSandboxConfig(array $config_array): ?array
  9. {
  10. // Check if the input is a valid array
  11. if (!is_array($config_array)) {
  12. error_log("Error: Invalid input. Expected an array.");
  13. return null;
  14. }
  15. // Check if the array is empty
  16. if (empty($config_array)) {
  17. error_log("Warning: Input array is empty. Returning an empty array.");
  18. return [];
  19. }
  20. // Attempt to sort the array numerically
  21. try {
  22. usort($config_array, function ($a, $b) {
  23. if (is_numeric($a) && is_numeric($b)) {
  24. return $a - $b; // Numeric sort
  25. } else {
  26. return strcmp($a, $b); // String sort
  27. }
  28. });
  29. } catch (Exception $e) {
  30. error_log("Error during sorting: " . $e->getMessage());
  31. return null;
  32. }
  33. return $config_array;
  34. }
  35. //Example usage
  36. /*
  37. $config = [
  38. 'setting1' => 'value3',
  39. 'setting2' => 'value1',
  40. 'setting3' => 'value2',
  41. 'setting4' => 10,
  42. 'setting5' => 5,
  43. ];
  44. $sortedConfig = sortSandboxConfig($config);
  45. if ($sortedConfig !== null) {
  46. print_r($sortedConfig);
  47. } else {
  48. echo "Failed to sort configuration.";
  49. }
  50. */
  51. ?>

Add your comment