<?php
/**
* Sorts configuration values for sandbox usage with graceful failure handling.
*
* @param array $config_array An array of configuration values.
* @return array|null Sorted array of configuration values, or null on failure.
*/
function sortSandboxConfig(array $config_array): ?array
{
// Check if the input is a valid array
if (!is_array($config_array)) {
error_log("Error: Invalid input. Expected an array.");
return null;
}
// Check if the array is empty
if (empty($config_array)) {
error_log("Warning: Input array is empty. Returning an empty array.");
return [];
}
// Attempt to sort the array numerically
try {
usort($config_array, function ($a, $b) {
if (is_numeric($a) && is_numeric($b)) {
return $a - $b; // Numeric sort
} else {
return strcmp($a, $b); // String sort
}
});
} catch (Exception $e) {
error_log("Error during sorting: " . $e->getMessage());
return null;
}
return $config_array;
}
//Example usage
/*
$config = [
'setting1' => 'value3',
'setting2' => 'value1',
'setting3' => 'value2',
'setting4' => 10,
'setting5' => 5,
];
$sortedConfig = sortSandboxConfig($config);
if ($sortedConfig !== null) {
print_r($sortedConfig);
} else {
echo "Failed to sort configuration.";
}
*/
?>
Add your comment