1. <?php
  2. /**
  3. * Reloads user data configuration.
  4. *
  5. * @param array $rawData Raw data from the configuration source.
  6. * @return array|false The validated and processed user data, or false on error.
  7. */
  8. function reloadUserConfig(array $rawData): array|false
  9. {
  10. // Basic input validation. Adjust as needed.
  11. if (!is_array($rawData)) {
  12. error_log("Invalid data format: Expected an array.");
  13. return false;
  14. }
  15. $userData = [];
  16. foreach ($rawData as $key => $value) {
  17. // Validate key (user ID)
  18. if (!is_numeric($key)) {
  19. error_log("Invalid user ID: Key '$key' is not numeric.");
  20. return false;
  21. }
  22. // Validate value (user data) - example: check if it's an associative array
  23. if (!is_array($value)) {
  24. error_log("Invalid user data for user ID '$key': Value is not an array.");
  25. return false;
  26. }
  27. //Process user data. Example: Ensure 'username' exists
  28. if (!isset($value['username']) || empty($value['username'])) {
  29. error_log("Missing or empty username for user ID '$key'.");
  30. return false;
  31. }
  32. $userData[$key] = $value;
  33. }
  34. return $userData;
  35. }
  36. // Example Usage (replace with your actual data source)
  37. $configData = [
  38. 1 => ['username' => 'john.doe', 'email' => 'john.doe@example.com'],
  39. 2 => ['username' => 'jane.smith', 'email' => 'jane.smith@example.com'],
  40. 3 => ['username' => '', 'email' => 'test@example.com'] //Example of invalid data
  41. ];
  42. $reloadedConfig = reloadUserConfig($configData);
  43. if ($reloadedConfig !== false) {
  44. // Use the reloaded configuration
  45. print_r($reloadedConfig);
  46. } else {
  47. echo "Failed to reload user configuration.";
  48. }
  49. ?>

Add your comment